27

因此,我试图弄清楚 Form 的 AutoScaleMode 属性如何可能有助于支持具有与我的工作开发机器不同的字体或DPI的系统。

从 SDK:

AutoScaleMode 枚举

公共枚举 AutoScaleMode

没有任何  
   自动缩放被禁用。    
字体   
   控制相对于尺寸的缩放
   类使用的字体,通常是
   系统字体。
Dpi    
   控制相对于显示分辨率的比例。
   常见的分辨率是 96 和 120 DPI。

默认情况下,.NET 2.0 表单使用 AutoScaleMode.Font。

所以我在我的 Windows XP、Tahoma 8 pt、96 DPI 开发机器上设计了一个示例表单。然后我试了一下

  • 14 pt Segoe UI 96 DPI 机器
  • 14 pt Segoe UI 150 DPI 机器

结果并不令人鼓舞,如您在此屏幕截图中所见:

AutoScaleMode 属性并非旨在启用 .NET 窗体以支持不同的字体或 DPI 设置。那么支持不同字体和 DPI 设置的正确方法是什么?

4

1 回答 1

6

正确的方法是缩放控件、表单本身和其中的文本。这听起来很复杂,但布局控件(TableLayoutPanel 和 FlowLayoutPanel)与 AutoSize 属性相结合,大大降低了难度。

于 2008-10-13T19:31:49.600 回答