Поддержка DPI и изменений шрифтов по умолчанию

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

Из SDK:

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

Публичное перечисление AutoScaleMode

 Никто  
   Автоматическое масштабирование отключено.    
Шрифт   
   Контролирует масштаб относительно размеров 
   шрифт, который используют классы, который обычно 
   системный шрифт.
точек на дюйм    
   Управляет масштабом относительно разрешения дисплея. 
   Общие разрешения - 96 и 120 DPI.

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

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

  • Станок Segoe UI 96 DPI 14 pt
  • Станок Segoe UI 150 DPI 14 pt

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

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

1 ответ

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

Другие вопросы по тегам