首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >高DPI问题

高DPI问题
EN

Stack Overflow用户
提问于 2010-01-22 12:04:47
回答 3查看 8.1K关注 0票数 7

我有一个问题,我们的.NET视窗应用程序在高dpi设置下的显示。

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

基本上,标签最终会随着字体变大而变大,但其他控件的位置不会改变,我们最终会用标签遮挡其他控件或彼此。

屏幕应该看起来像这样:http://www.manageinvest.com/good.jpg ..and on high DPI它最终看起来像这样:bad.jpg (这是我的第一篇文章,所以我只被允许一个链接)

有什么建议吗?

提前谢谢你,

克里斯蒂安

EN

回答 3

Stack Overflow用户

发布于 2010-01-22 12:25:05

理论上,Winforms中的字体和DPI缩放是自动的。实际上..。不是很多。

我注意到,它在垂直缩放方面比水平缩放处理得更好,但即使这样,它也远不完美。

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

  1. 根本不使用设计器。这是非常痛苦的,但它确实给了您对布局的必要数量的控制。
  2. 使用内置的布局控件-特别是FlowLayoutPanelTableLayoutPanel。这些人是你最好的朋友;我在Winforms中很少没有他们就能做任何事情。

在你的情况下,我可能会选择#2。基于屏幕截图,我认为将你的布局放入TableLayoutPanelFlowLayoutPanel容器的组合中是相当容易的-甚至可能只有一个TableLayoutPanel

票数 6
EN

Stack Overflow用户

发布于 2010-01-22 19:16:44

您应该研究一下AutoScaleMode和AutoSize的特性。结合对接能力,你应该能够实现你想要的东西。

我有一篇关于这方面的很好的文章,但是链接死了…无论如何,这应该可以让你开始:

http://msdn.microsoft.com/en-us/library/ms229605.aspx

http://www.sellsbrothers.com/writing/winformsAutoScaling.htm

http://msdn.microsoft.com/en-us/library/system.windows.forms.autoscalemode.aspx

票数 3
EN

Stack Overflow用户

发布于 2010-01-22 12:16:45

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

但是我们学到了标签和文本控件应该垂直堆叠,即把文本框放在标签下面,而不是标签旁边。这为我们解决了许多问题,包括支持多种语言,因为不同语言的文本宽度可以大于英语文本

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2114857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档