Поддержка DPI и изменения шрифтов по умолчанию - PullRequest
27 голосов
/ 13 октября 2008

Поэтому я пытаюсь выяснить, как свойство формы AutoScaleMode может помочь поддерживать систему со шрифтом или DPI , который отличается от моего компьютера для разработки работы.

Из SDK:

Перечисление AutoScaleMode

public enum AutoScaleMode

None  
   Automatic scaling is disabled.    
Font   
   Controls scale relative to the dimensions of the 
   font the classes are using, which is typically the 
   system font.
Dpi    
   Controls scale relative to the display resolution. 
   Common resolutions are 96 and 120 DPI.

По умолчанию формы .NET 2.0 используют AutoScaleMode.Font.

Итак, я разработал образец формы на моей машине для разработки под Windows XP, Tahoma 8 pt, 96 DPI. Тогда я попробовал это на

  • 14 пт. Segoe UI 96 DPI
  • 14 пт Segoe UI 150 DPI, машина

Результаты не были обнадеживающими, как вы можете видеть на этом скриншоте:

image

Свойство AutoScaleMode не предназначено для включения формы .NET для поддержки различных шрифтов или настроек DPI. Так что же является правильным способом поддержки различных настроек шрифта и DPI?

1 Ответ

6 голосов
/ 13 октября 2008

Правильный способ - масштабировать элементы управления, саму форму и текст внутри. Это звучит очень сложно, но элементы управления макетом (TableLayoutPanel и FlowLayoutPanel) в сочетании со свойством AutoSize значительно упрощают эту задачу.

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