【问题标题】:How to use minWidth, minHeight of a DevExpress LayoutControl?如何使用 DevExpress LayoutControl 的 minWidth、minHeight?
【发布时间】:2010-08-19 19:30:06
【问题描述】:
我已经开始使用 DevExpress LayoutControl 了。感觉很强大,但我没有得到我想要的。我想设置组件的最小宽度和最小高度,因为你不能有一个真正小的对话框,它仍然看起来不错。同时我想让用户有任意大的尺寸,让组件拥有相等的宽度和高度。而且我不想要任何滚动条。我怎样才能做到这一点?
还有一件事。由于其他情况,我仍然使用旧版本的 Devexpress 6.38。最新版本的 LayoutControl 是否修复了许多错误?难道是这个阻止了我?
/罗兰
【问题讨论】:
标签:
delphi
layout
devexpress
delphi-2007
【解决方案1】:
我认为您不能在 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
希望对你有帮助