如何调整DevExpress控件的大小

Cla*_*ord 8 devexpress

我在WinForms表单中设置了一个DevExpress LayoutControl.我希望在LayoutControl调整horizontally窗体大小时调整大小,或者至少使LayoutControl可以由用户调整大小.

我在DevExpress的页面上看到了将SizeConstraintsType属性更改为的建议"default".我还尝试将控件锚定到其父级的左侧和右侧.我也努力增加了MaxSize.有谁知道如何做到这一点?

我只是想做相当于(在HTML中)<table width=100%>.有谁知道如何做到这一点?

提前致谢!

Ben*_*yne 13

开发人员的Express LayoutControl是一个非常好的工具,但有几个陷阱.

LayoutControl本身应该调整大小,停靠在任何容器控件内,如窗体,用户控件或面板控件.在许多情况下,布局控件是你在表单/控件上放置的第一件事之一,因为其他内容都是"layedout".因此,您应该将布局控件的"Dock"属性设置为"Fill",或者设置为您希望其停靠的窗体/控件的所需边缘.

这里的"问题"是布局控件的内部逻辑可以限制其外部尺寸或任何内部项目,如果它能够这样做并且布局项目想要特定尺寸.这实际上比听起来更简单.

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

解决这个问题的方法是将标签的"AutoSizeMode"属性更改为"vertical"(如果你想要文本换行)或"none"(如果你想强制它是布局控件想要它的大小).这样就可以释放布局控件来做出宽度决定.

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