因此,我正在阅读某人在另一个问题中链接到的那些 Windows Vista UI 指南,他们提到您应该能够在切换到 120 DPI 后幸存下来。好吧,我在安装了应用程序的情况下启动了我方便的 VM,然后我们会得到什么... AAAAGH !!!大量用户界面失败!
一切都乱七八糟:有些容器不足以容纳它们的文本;一些“彼此相邻”的控件现在都被挤压在一起/分开;有些按钮不够高;我的 ListView
列不够宽... eeek。
这听起来像是一种完全不同的方法。我的前一个基本上是使用 VS2008 Windows 窗体设计器来创建基于像素的布局。我可以看到,如果我坚持使用 Windows 窗体,FlowLayoutPanel
s 会有所帮助,尽管我过去发现它们相当不灵活。它们也没有解决容器(例如表单本身)不够大的问题;大概有办法做到这一点?也许那个 AutoSize
属性(property)?
这也可能表明是时候跳槽到 WPF 了;我的印象是它是专门为这种事情设计的。
基本问题似乎归结为这些:
最佳答案
了解 Anchor 和 Dock 属性如何在您的控件上工作,留下任何可以自动调整大小的内容,并使用 TableLayoutPanel
什么时候可以。
如果你做这三件事,你就会在 Windows 窗体中获得很多 WPF 设计体验。精心设计的TableLayoutPanel
将尽最大努力调整控件的大小,使其适合表单。结合 AutoSize 控件、停靠和 Soeren Kuklau 提到的 AutoScaleMode,您应该能够制作出可以很好缩放的东西。如果没有,您的表单可能有太多控件;考虑将其拆分为标签页、 float 工具箱或其他一些空间。
在 WPF 中,这要容易得多,因为自动调整大小控件的概念是内置的;在大多数情况下,如果您使用坐标对放置 WPF 元素,则您做错了。尽管如此,您仍无法改变这样一个事实,即在较低分辨率下,不需要太多 120 dpi 的文本即可填满屏幕。有时问题不在于你的布局,而在于试图在一个小空间里放太多东西。
关于.net - 字体大小独立的 UI : everything broke when I switched to 120 DPI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50528/