当前位置:  开发笔记 > 编程语言 > 正文

支持DPI和默认字体更改

如何解决《支持DPI和默认字体更改》经验,为你挑选了1个好方法。

所以我试图弄清楚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机器

结果并不令人鼓舞,您可以在此屏幕截图中看到:

AutoScaleMode属性未设计为启用.NET窗体以支持不同的字体或DPI设置.那么支持不同字体和DPI设置的正确方法什么?



1> John Rudy..:

正确的方法是缩放控件,表单本身和文本.这听起来非常复杂,但布局控件(TableLayoutPanel和FlowLayoutPanel)与AutoSize属性相结合,使得这一点变得相当困难.


用TableLayout或FlowLayout替换整个布局,并在所述Layout控件上重新布局表单,使用它来处理所有缩放脏工作.锚点非常适合将控件保持在给定位置,它们本身并不能为您提供良好的缩放.
推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有