【问题标题】:How to set Anchor / Docking properly so GUI can fit multiple screen sizes如何正确设置 Anchor / Docking,以便 GUI 可以适应多种屏幕尺寸
【发布时间】:2012-02-10 22:28:33
【问题描述】:

我有简单的 WinForms GUI,我想与 TabPages 一起使用。我遇到的问题是调整大小并使用多种尺寸的屏幕。我要为每个 TextBox、GroupBox 更改哪些设置,以使其很好地适应屏幕,而不会让用户觉得它设计得很糟糕?

通常我会使用 Dock 填充,但它不适用于超过 1 个 GroupBox。然后我检查/玩了 Anchor,试图让它绑定到 Top、Left、Right、Bottom 的所有内容,但这会造成很大的混乱(文本框与其他标签、texbox 等重叠)。我试着在这里选择一些,一些在这里,但每当我尝试调整大小时,都会发生意想不到的事情。我将如何离开这里?我的系统是 24 英寸,分辨率为 1920x1080p,但我的用户通常有 1024x768 到 1920x1080 的范围。

现在我正在使用 Devexpress 控件,但这个问题同时适用于 Devexpress 和内置控件。

【问题讨论】:

  • 没有可以翻转的神奇开关来使表单在较低分辨率的屏幕上看起来不错。 Dock 和 Anchor 有助于使其在 更大 屏幕上工作。您需要针对您愿意支持的最小分辨率进行设计。将表单的 AutoScroll 属性设置为 true 以使其在较小的屏幕上仍然可用。

标签: c# winforms c#-4.0


【解决方案1】:

首先,在设计器中将表单大小设置为比预期的最小分辨率略小——比如 900x650 左右。然后,您可以设计一个可以在所有分辨率下工作的表单,即使它没有调整大小。

接下来,确定哪些控件应保持固定大小,哪些控件应随着表单变大而拉伸/增长。首先,某些字段不会从放大中受益(例如,如果您的文本框始终包含最多 3 位的百分比,那么让它变得足够大以显示 9 位是没有意义的,甚至会适得其反。其次,有些字段填满了表单的整个宽度,因此如果它们一起增长,它们自然会更好地工作。

现在,设置锚定。通常,将控件的边缘锚定到窗体的最近边缘。如果您只设置一个锚点,控件将不会拉伸,并且锚点边缘将从窗体的那一侧开始相同的距离。

如果您想拉伸控件,请锚定相对的两侧(例如左侧和右侧)。这将使这些边缘与表单边缘的距离保持相同,因此控件将拉伸以适应。

您会看到,如果一个控件被锚定在适当的位置,并且它旁边的控件设置为拉伸,那么它们很有可能最终会重叠,因此您必须将表单中的所有控件视为相关组。

要获得更多控制,请将控件组放入面板或组框等容器控件中。然后它们的锚定与它们的父组相关,并且可以将组锚定到表单。

要查看效果,只需在设计器中调整表单大小并查看所有内容 - 然后撤消并修复任何不起作用的锚定。您很快就会了解布局的工作原理,以及如何设计表单以适应大小调整。

【讨论】:

    猜你喜欢
    • 2022-06-23
    • 1970-01-01
    • 1970-01-01
    • 2013-02-05
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多