我已经开始使用DevExpress LayoutControl了。它感觉很强大,但我没有按照我的意愿得到它。我想设置组件的最小宽度和最小高度,因为你不能让对话框变得很小而且看起来仍然很好。同时我想让用户拥有任意大尺寸,让组件具有相同的宽度和高度份额。而且我不想要任何滚动条。我怎么能做到这一点?
还有一件事。由于其他情况,我仍然使用Devexpress的旧版本6.38。是否在最新版本的LayoutControl中修复了许多错误?这可能阻止我吗?
/罗兰
答案 0 :(得分:1)
我认为你不能在LayoutControl中指定控件的最小高度/宽度。你当然可以使用标准的constraints
属性,它会起作用,但看起来很难看。
问题是你究竟想要实现的目标是什么? LayoutControl尝试调整它的控件大小,以便一切尽可能合适。由于许多控件都包含在太小的空间中,滚动条会出现,但还会发生什么呢?
设置可调整大小的布局的关键是调整布局项/组的AlignHoriz
和AlignVert
属性。将这些设置为ahClient/avClient
以获取可调整大小的控件,例如Memo或Grid。您通常也希望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
希望有所帮助