因此,我正在阅读有人在另一个问题中链接到的 Windows Vista UI 指南,他们提到您应该能够在切换到 120 DPI 后继续生存。好吧,我启动了安装了应用程序的便捷虚拟机,然后我们得到了什么……啊啊啊!!!大规模用户界面失败!
一切都杂乱无章:有些容器不够大,无法容纳文本;有些容器不够大,无法容纳文本。一些“彼此相邻”的控件现在全部压在一起/分散开;有些按钮不够高;我的ListView
列不够宽...哎呀。
听起来似乎需要采取一种完全不同的方法。我的上一个基本上是使用 VS2008 Windows 窗体设计器来创建(我猜)基于像素的布局。我可以看到,如果我坚持使用 Windows 窗体,FlowLayoutPanel
尽管我过去发现它们相当不灵活,但它会很有帮助。它们也不能解决容器(例如表单本身)不够大的问题;想必有办法做到这一点?也许是这样AutoSize
财产?
这也可能表明是时候转向 WPF 了;我的印象是它是专门为这种事情设计的。
基本问题似乎可以归结为以下几点:
- 如果我坚持使用 Windows 窗体,那么实现与字体大小无关的布局的所有技巧是什么,该布局可以在用户将字体设置为大或将显示设置为 120 DPI 时继续存在?
- WPF 在这方面是否具有显着优势?如果是,您能否尝试让我相信它值得进行切换?
- 无论是在 .NET 堆栈中还是一般情况下,与字体大小无关的布局是否有任何通用的“最佳实践”?
了解如何Anchor and Dock属性在您的控件上起作用,保留任何可以AutoSize本身,并使用TableLayoutPanel
当你可以的时候。
如果您完成这三件事,您将获得大量 Windows 窗体中的 WPF 设计经验。一个精心设计的TableLayoutPanel
将尽力调整控件的大小,以便它们正确适合表单。结合AutoSize控制、对接和自动缩放模式Soeren Kuklau 提到,你应该能够制作出具有良好扩展性的东西。如果没有,您的表单可能有太多控件;考虑将其拆分为选项卡页、浮动工具箱或其他空间。
在 WPF 中,这要容易得多,因为自动调整大小控件的概念是内置的;在大多数情况下,如果您使用坐标对放置 WPF 元素,那么您的做法是错误的。不过,您无法改变这样一个事实:在较低分辨率下,不需要太多 120 dpi 文本即可填满屏幕。有时问题不在于您的布局,而在于试图在狭小的空间中放置过多的东西。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)