我已经开始有点使用DevExpress LayoutControl。感觉很强大,但我没有得到想要的。我想设置组件的最小宽度和最小高度,因为您不能拥有一个很小的对话框,而且看起来仍然不错。同时,我想让用户拥有任意大的尺寸,并使组件在宽度和高度上具有相等的份额。而且我不需要任何滚动条。我该怎么做?
还有一件事。由于其他情况,我仍然使用旧版本的Devexpress 6.38。在最新版本的LayoutControl中是否修复了许多错误?难道这就是阻止我?
/罗兰
最佳答案
我认为您不能在LayoutControl中指定控件的最小高度/宽度。您当然可以使用标准的constraints
属性,它可以工作,但是看起来很丑。
问题是您到底想达到什么目的? LayoutControl尝试调整其控件大小,以使所有内容都尽可能适合。如果许多控件的空间太小,则会出现滚动条,但是还会发生什么呢?
设置可调整大小的布局的关键是调整布局项目/组的AlignHoriz
和AlignVert
属性。对于可调整大小的控件(例如备注或网格),将它们设置为ahClient/avClient
。另外,您通常还希望LayoutControls的AutoContentSizes
为[acsWidth,acsHeight]
说到版本,我建议您升级到最新版本并尝试LayoutControl V2,与v1相比,它具有一些附加功能,例如对分离器和制表符的支持。
这是一个逻辑上调整大小的简单表单的示例,您可以将其粘贴到空表单中:
object dxLayoutControl1: TdxLayoutControl
Align = alClient
AutoContentSizes = [acsWidth, acsHeight]
object Edit1: TEdit
BorderStyle = bsNone
end
object Button1: TButton
end
object Memo1: TMemo
BorderStyle = bsNone
end
object dxLayoutControl1Group_Root: TdxLayoutGroup
ShowCaption = False
Hidden = True
ShowBorder = False
object dxLayoutControl1Group1: TdxLayoutGroup
AutoAligns = [aaHorizontal]
AlignVert = avClient
object dxLayoutControl1Group2: TdxLayoutGroup
ShowCaption = False
Hidden = True
LayoutDirection = ldHorizontal
ShowBorder = False
object dxLayoutControl1Item1: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahClient
Control = Edit1
end
object dxLayoutControl1Item2: TdxLayoutItem
ShowCaption = False
Control = Button1
ControlOptions.ShowBorder = False
end
end
object dxLayoutControl1Item3: TdxLayoutItem
AutoAligns = [aaHorizontal]
AlignVert = avClient
Control = Memo1
end
end
end
end
希望能帮助到你