支持DPI和默认字体更改

所以我想弄清楚Form的AutoScaleMode属性如何可能有助于支持与我的工作开发机器不同的字体或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 Forms使用AutoScaleMode.Font。

于是我在我的Windows XP Tahoma 8 pt,96 DPI开发机器上设计了一个样本表单。 然后我尝试了一下

  • 14点Segoe UI 96 DPI机器
  • 14磅Segoe UI 150 DPI机器
  • 结果并不令人鼓舞,正如你在这个屏幕截图中看到的那样:

    AutoScaleMode属性不是为了支持不同的字体或DPI设置而设计的。 那么支持不同字体和DPI设置的正确方法什么?


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

    链接地址: http://www.djcxy.com/p/74537.html

    上一篇: Supporting DPI and Default Font Changes

    下一篇: "skipped loading symbols for ngen binary" for C# dll