高DPI问题

kri*_*ian 6 .net dpi winapp

我在高dpi设置下显示.NET Windows应用程序时遇到问题.

所有表单都设置为AutoScaleMode = DPI,但这并不能解决所有问题.

基本上标签最终扩大尺寸以应对更大的字体,但其他控件的位置不会改变,我们最终会用标签遮盖其他控件或彼此.

屏幕应该是这样的:http://www.manageinvest.com/good.jpg ..和高DPI它结束了看起来像这样:bad.jpg (这是我的第一篇文章,所以我只允许一个链接)

有什么建议?

提前致谢,

克里斯蒂安

Aar*_*ght 6

理论上,Winforms中的字体和DPI缩放是自动的.在实践中......不是那么多.

我注意到它更适合垂直缩放而不是水平缩放,但即便如此,它也远非完美.

根据我的经验,只有当你做以下两件事之一时,缩放才是可靠的:

  1. 根本不要使用设计师.这非常痛苦,但它确实为您提供了对布局的必要控制.

  2. 使用内置布局控件 - 特别是FlowLayoutPanelTableLayoutPanel.这些家伙是你最好的朋友; 没有它们,我很少在Winforms中做任何事情.

在你的情况下,我可能会选择#2.基于屏幕捕获,我认为这将是很容易满足您的布局成的组合TableLayoutPanelFlowLayoutPanel容器-甚至可能只有一个TableLayoutPanel.


rev*_*eva 1

这可能无法解决您的问题。

但我们经过惨痛的教训才知道,标签和文本控件应该垂直堆叠,即将文本框放在标签下方,而不是标签旁边。这为我们解决了很多问题,包括支持多种语言,因为不同语言的文本宽度可能比英文文本更大