Поддержка изменений DPI и шрифтов по умолчанию
Итак, я пытаюсь выяснить, как свойство Form 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 Forms используют AutoScaleMode.Font.
Итак, я разработал образец формы на моей машине разработки Windows XP, Tahoma 8 pt, 96 DPI. Затем я попробовал его на
- 14 pt Segoe UI 96 DPI машина
- 14 pt Segoe UI 150 DPI машина
Результаты не были обнадеживающими, как вы можете видеть на этом снимке экрана:
![comparison-of-form-autoscalemodes-matrix.png]()
Свойство AutoScaleMode не предназначено для включения .NET-формы для поддержки различных настроек шрифта или DPI. Итак, что - правильный способ поддержки разных настроек шрифта и DPI?
Ответы
Ответ 1
Правильный способ - масштабирование элементов управления, самой формы и текста внутри. Это звучит очень сложно, но элементы управления компоновкой (TableLayoutPanel и FlowLayoutPanel) в сочетании с свойством AutoSize делают это значительно менее сложным.