我有一个Windows窗体应用程序(使用vs2010 / C#编写,针对.NET framework 3.5),其中包含一个主窗体。它是在Win7的100%DPI设置下设计的(我相信这是96 dpi)。当将计算机切换到150%时,一切看起来都很好,所有比例都保持不变。
然而,当我切换到125%时,一些控件突然不会缩放,看起来像100%那样大。这会弄乱整个布局,并隐藏用户的一些控件。
对于125%和150%设置之间的巨大行为差异,有没有任何合理的解释?
另外,有更快的方法来测试吗?每次切换时都必须重新注册并重新登录,这很快就会变得烦人。
答案 0 :(得分:3)
对于你观察到的内容没有简单的解释。
一种廉价的测试方法,无需经历痛苦的登录周期就是在OnLoad方法中更改表单的Font属性:
protected override void OnLoad(EventArgs e) {
this.Font = new Font(this.Font.FontFamily, this.Font.SizeInPoints * 120f / 96f);
base.OnLoad(e);
}
答案 1 :(得分:2)
查看表单的AutoScaleMode。它可能设置为Font或Dpi
答案 2 :(得分:0)
加入John Arlen的帖子:
您可能还希望使用AutoSizeMode。
允许表单增长和缩小答案 3 :(得分:0)
关于"另外,有更快的方法来测试吗?每次切换时都必须重新注册并重新登录,这很快就会变得很烦人。"
最好的方法是使用具有不同DPI设置的虚拟机。 您只需从“真实”中运行您的应用程序即可。机。