如何调整窗体上的控件大小以适应不同的分辨率?

Posted

技术标签:

【中文标题】如何调整窗体上的控件大小以适应不同的分辨率?【英文标题】:How do I resize controls on a form to fit different resolutions? 【发布时间】:2010-10-12 22:15:01 【问题描述】:

我正在开发一个带有几个按钮和标签的小型应用程序。在我的开发 PC 上,它适合窗口,但在其他机器上,表单的控件变得更小。我的屏幕分辨率是 1680x1050,客户端屏幕解决方案是 1024x768。是否可以使控件自动适应屏幕解决方案?

【问题讨论】:

什么语言/框架/平台? 【参考方案1】:

在 .NET 世界中,您可以使用以下方法查询分辨率(和其他内容):

SystemInformation.PrimaryMonitorSize

我相信,这会在 Size 返回值中返回一对整数,它会告诉你以像素为单位的尺寸。

如果您巧妙地开发了表单 - 利用布局并期望程序可能以不同的分辨率运行,您可以获取该信息并保持显示正确。

希望对您有所帮助。

【讨论】:

【参考方案2】:

您可以使用锚定和停靠来调整控件的大小以适合屏幕。您还可以将它们放在启用滚动的面板中。但是,围绕用户将使用的分辨率设计应用程序可能是一个更好的主意。您可以使用选项卡式对话框等来一次在屏幕上拥有更少的控件。您向用户提供的控件越多,他们就会认为您的应用越难使用。

【讨论】:

【参考方案3】:

我所知道的每种语言都有某种联系操作系统并请求用户屏幕结果的方式。这在 Web 应用程序中并非如此(或至少并非总是如此),但在“标准”应用程序中绝对是正确的。

例如,对于 Windows 窗体 (.NET) 应用程序,您可以将状态设置为最大化,应用程序将填满屏幕。您还可以根据用户的分辨率或其中的一部分(例如 75%)查询分辨率并设置大小。

这里的问题是你是 .NET 还是 Java?你在windows、mac、linux上运行吗?如果没有进一步的信息,没有人可以通过这个“噩梦”规划你的路线。

【讨论】:

【参考方案4】:

使用停靠和/或获取屏幕分辨率

【讨论】:

它提供了一个答案。请参阅“itsmatt”接受的答案,了解有关获取屏幕分辨率的信息。以及来自“乔恩 B”关于对接的赞成回答。 很公平。在 Review UI 的孤立视图中,这看起来像是一个只值得评论的建议。就地审查它,我承认这是一个答案,只是。【参考方案5】:

我们在 DevExpress 组件方面拥有出色的经验,可以帮助您调整控件大小:Layoutcontrol。它使您的表单在所有屏幕尺寸和分辨率上都很好。掌握它需要一些时间,但一旦你掌握它......它完全改变了我们创建接口的方式(在 Delpft VCL 中,但它在 .net 中的工作方式相同)

【讨论】:

以上是关于如何调整窗体上的控件大小以适应不同的分辨率?的主要内容,如果未能解决你的问题,请参考以下文章

C#编程,分辨率改变后,怎么让窗体的大小,窗体上的控件大小,位置,按比例改变?

winform窗体控件随分辨率的改变而自动调整大小?

c# winform groupbox上动态生成的控件,如何让控件随着分辨率变化而自动调整位置和大小

本人初学WPF,现在编写了一个UserControl,如何让这个控件自适应加载窗体的宽度和高度适应不同分辨率显示

C# winform 程序自动适应显示器分辨率

如何实现Winform窗体应用程序的字体和窗体大小不跟随分辨率改变