Winform应用程序布局 - 处理不同的DPI实践

时间:2010-01-20 10:16:06

标签: .net winforms user-interface layout

我们有一个winform MDI应用程序,有很多表单/对话框。有些是布局的 绝对的位置和大小,一些使用桌子/流程板布局。

在不同的屏幕分辨率下整体外观看起来不错。直到有人在DPI设置为120的机器上测试它。虽然大多数事情看起来不错,但是有些控件在这里和那里都有重击,重叠其他控件,有锚= Right / Top的部分没有坚持到对了,等等。

开发在不同DPI下“工作”的winform应用程序的做法是什么?

是否有任何快捷方式可帮助开发人员在不同的DPI下测试应用程序?

2 个答案:

答案 0 :(得分:1)

“完整”答案在这篇文章中:How to write WinForms code that auto-scales to system font and dpi settings?

对于您的情况,请勿锚定到右侧,添加一个Docked右侧并在此新面板中移动您的控件。

但请阅读上面链接中的所有内容

答案 1 :(得分:0)

如果其他人发现这个尚未得到答案的问题。

我今天遇到了这个问题,经过搜索,我发现最好的是将所有控件上的AutoScaleMode切换为Inherit(查找和替换设计器文件),然后在生成的InitializeComponent之后(可能就在ResumeLayout之后),设置AutoScaleMode到字体(或无...或继承)。在所有事情上将AutoScaleMode设置为DPI的常见声明不起作用,实际上失败的是其他任何事情。

从我发现的情况来看,听起来WPF通过将其作为框架的一部分来解决大部分/全部问题。但是对于旧的winforms没有帮助。