【问题标题】:How to resize DevExpress controls如何调整 DevExpress 控件的大小
【发布时间】:2011-09-21 19:41:08
【问题描述】:

我在 WinForms 表单中设置了 DevExpress LayoutControl。我希望LayoutControl 在调整表单大小时调整horizontally 的大小,或者至少使用户可以调整 LayoutControl 的大小。

我在 DevExpress 的页面上看到了将 SizeConstraintsType 属性更改为 "default" 的建议。我还尝试将控件锚定在其父级的右侧和左侧。我也致力于增加MaxSize。有谁知道怎么做?

我基本上只是想做相当于(在 HTML 中)<table width=100%>。有谁知道怎么做?

提前致谢!

【问题讨论】:

    标签: devexpress


    【解决方案1】:

    Developer's Express LayoutControl 是一个非常好的工具,但有几个问题。

    LayoutControl 本身应该调整大小,可以很好地停靠在任何容器控件中,例如表单、用户控件或面板控件。在许多情况下,布局控件是您放在表单/控件上的第一件事,因为其他所有内容都在其中进行“布局”。因此,您应该将布局控件的“Dock”属性设置为“Fill”或您希望它停靠的表单/控件的所需边缘。

    这里的“陷阱”是布局控件的内部逻辑可能会限制其外部尺寸或任何内部项目,如果它能够这样做并且布局项目想要特定大小的话。这实际上比听起来简单。

    例如,假设您的布局控件中有一个标签控件。默认情况下,标签控件将自行调整大小以适合其文本的宽度。反过来,布局控件将尝试通过缩小/扩大布局项目的大小来适应标签的所需大小。所以这个标签控件可能会影响您的布局控件调整大小。我选择 label 作为示例,因为它是最常见的控件,会弄乱您的布局设计。

    我解决此问题的方法是将标签的“AutoSizeMode”属性更改为“垂直”(如果您想要文本换行)或“无”(如果您想强制它成为布局控件想要的大小) .这释放了布局控件来做出宽度决定。

    此外,如果您允许最终用户调整布局控件的大小(例如使用 DevExpress 的 SplitterControl),则布局将再次尝试成为其最佳大小,并且不允许 SplitterControl 离开此最佳大小,如果另一个控件更容易调整大小(如网格、树、列表等)。在这种情况下,将“EmptySpaceItem”添加到布局控件将允许它在调整大小时填充任何空白空间。要将 EmptySpaceItem 添加到您的布局中,请右键单击 Visual Studio 设计器中的布局控件并选择“自定义布局”。自定义对话框将包含一个项目列表,您可以将其拖到布局控件上,包括 EmptySpaceItem。

    【讨论】:

    • +1,一旦你使用它一段时间,你就会学到技巧。当您扩展到 ASP.net Web 表单库并使用 FormLayout 时,情况会变得更糟。学习尺码技巧是一场噩梦。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-01
    • 2015-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-17
    • 1970-01-01
    相关资源
    最近更新 更多