Размер формы Windows в Windows урезан - PullRequest
1 голос
/ 27 сентября 2010

У нас есть японский пользователь, который сообщает, что на его японском компьютере усечен размер формы (меньший размер, показаны не все элементы управления).В файле формы Windows .designer.cs имеются следующие настройки:

     this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
     this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;

Более того, в форме ctor у нас есть некоторый код, похожий на этот, для настройки размера формыв DPI.jap У японского пользователя обычный набор точек на дюйм o 96.

     //
     // Adjust Form Size from DPIRatio
     //
     var size = this.Size; 
     // dpiRatio is 1.0 if DPI is 96, 
     // dpiRatio is less than 1.0 if DPI higher than 96
     var dpiRatio = DPIHelper.DPIRatio;  
     var newSize = new Size((int)(size.Width/dpiRatio), (int)(size.Height/dpiRatio));
     this.MaximumSize = newSize;
     this.MinimumSize = newSize;
     this.Size = newSize;

Я уверен, что он исходит из другого набора шрифтов в японской Windows, но не нашел каких-либо рекомендаций, которым можно было бы следовать в Интернете,Есть идеи?

1 Ответ

1 голос
/ 27 сентября 2010

Это код во втором фрагменте, который все испортил. Компьютеры Восточной Азии часто используют функцию XP, которая позволяет увеличить размер шрифта системы, не увеличивая при этом DPI. Приятно читаемость их замысловатых символов.

Просто удалите код, чтобы решить проблему. Если вы хотите, чтобы форма не изменялась, установите ее FormBorderStyle, скажем, Fixed3D. Если вы настаиваете на фальсификации границы, вам придется переместить назначения Min / MaximumSize в событие Load. Только после этого свойство размера формы рассчитывается и корректируется с учетом размера системного шрифта, а также любых пользовательских настроек, таких как размер границы или размер текста заголовка. Какой кстати другой режим сбоя для вашего кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...