Tom*_*ell 7 dpi visual-studio-2008 windows-7 winforms
我开始在Windows 7上测试Winforms(使用VS2008)应用程序,我看到一个奇怪的问题.
它在Win7的前几个安装中运行良好,但在接下来的两个版本中,我的许多对话框都太小了,将内容剪裁了大约30%.
该应用程序是在WinXP上开发的,并没有在任何 XP安装上看到这个问题!
刚开始调查问题 - 没有关于有效系统和尚未实现的系统之间差异的任何细节.
编辑
根据Kate对其中一个答案的评论,Win7有时会在安装新显示器时更改为自定义文本大小.有问题的机器有一个大的宽屏显示器,当我们检查(控制面板+显示+自定义文本大小) - 确定 - 自定义文本大小设置为125%.将其设置为100%会使问题消失.
然后,我可以通过将文本大小设置为125%来复制WinXP上的问题.
所以问题现在变成了 - 你如何确保Winforms应用程序是"自定义文本大小独立"?
/编辑
如上所述,这里有一些屏幕截图.第一个来自Windows 7计算机,第二个来自我的WinXP开发系统.


尽管屏幕 DPI 和主题都可以更改控件的大小,但这不是这里的问题,因为在屏幕截图中,窗口镶边和非文本控件大小未更改。问题是您没有考虑自定义字体大小。
如果您想移动控件以将它们固定为固定的表单大小,则必须使用Control.AutoScaleDimensions控件的属性执行计算。这是很多工作,不要这样做。
相反,使用绝对坐标布局控件并放大表单以包含结果。设置您的表单' AutoScaleMode = AutoScaleMode.Font.