在 WinForms 应用程序中,处理调整控件大小以匹配基于屏幕分辨率以及最大化和调整窗口大小的最佳方法是什么。我有 3 列是这样设置的。每列中的标签文本框。您可以将其算作 6 列。我尝试过锚定到右侧,但问题是第 1 列中的文本框将与接下来的 2 列重叠。我也尝试过对接,但这似乎不起作用。有什么简单的方法可以做到这一点吗?
TL;DR:如果不手动编码调整大小逻辑,您就无法做到这一点。顺便说一句,您可能不应该尝试这样做。
据我所知,在传统的 WinForms 中,如果不推出您自己的解决方案,就没有自动的方法。Sean87 https://stackoverflow.com/users/658031/sean87 建议 https://stackoverflow.com/a/8523564/7290 the AutoScaleMode http://msdn.microsoft.com/en-us/library/system.windows.forms.containercontrol.autoscalemode.aspx属性,但虽然它是自动的,但它不支持按分辨率自动调整大小。它提供了一个基于 Windows 中的字体大小设置或 DPI 设置进行缩放的选项。当简单地更改屏幕分辨率时,这些都不会直接更改,而且老实说,大多数典型用户(甚至可能是高级用户)可能永远不会修改 DPI 或字体大小设置。
此外,从基本用户的角度来看,增加屏幕分辨率的重点是提供更多的虚拟桌面“空间”来放置应用程序窗口。确实,现在大多数显示器都是基于 LCD 的,因此具有原生分辨率 http://en.wikipedia.org/wiki/Native_resolution这使得改变这一点基本上已经成为 CRT 的过去了。但是,购买更大的新显示器的行为仍然会让典型用户增加虚拟屏幕空间,以便他们可以同时在屏幕上看到更多窗口。我认为,始终保持与屏幕分辨率相同的相对尺寸的应用程序是相当不常见的,并且违背了大多数用户的期望,甚至包括我们高级开发人员用户。
通常,您将对应用程序进行编码,以便在调整窗口大小时智能且有用地调整其内容,但通常您会听从用户的管理,因为这是他们的机器和他们的偏好(将其视为“我的房子,我的房子”)规则”原则)。这也是为什么大多数(所有?)应用程序不会更改窗口位置,除非由用户直接操作(通过拖动窗口框架等)。事实上,所有这些都可能解释了微软选择的原因not包括基于分辨率的任何自动调整大小规则。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)