我们有一个winform MDI应用程序,有很多表单/对话框。有些是布局的 绝对的位置和大小,一些使用桌子/流程板布局。
在不同的屏幕分辨率下整体外观看起来不错。直到有人在DPI设置为120的机器上测试它。虽然大多数事情看起来不错,但是有些控件在这里和那里都有重击,重叠其他控件,有锚= Right / Top的部分没有坚持到对了,等等。
开发在不同DPI下“工作”的winform应用程序的做法是什么?
是否有任何快捷方式可帮助开发人员在不同的DPI下测试应用程序?
答案 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没有帮助。