2008-10-13 4 views
26

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

Из SDK:

AutoScaleMode Перечень

общественное перечисление 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 машина

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

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

ответ

5

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

+0

Макетные панели не будут использоваться в вышеуказанной форме, вещи уже выложены с помощью якорей. – 2008-10-14 16:46:01