我已经开始有点使用DevExpress LayoutControl。感觉很强大,但我没有得到想要的。我想设置组件的最小宽度和最小高度,因为您不能拥有一个很小的对话框,而且看起来仍然不错。同时,我想让用户拥有任意大的尺寸,并使组件在宽度和高度上具有相等的份额。而且我不需要任何滚动条。我该怎么做?

还有一件事。由于其他情况,我仍然使用旧版本的Devexpress 6.38。在最新版本的LayoutControl中是否修复了许多错误?难道这就是阻止我?

/罗兰

最佳答案

我认为您不能在LayoutControl中指定控件的最小高度/宽度。您当然可以使用标准的constraints属性,它可以工作,但是看起来很丑。

问题是您到底想达到什么目的? LayoutControl尝试调整其控件大小,以使所有内容都尽可能适合。如果许多控件的空间太小,则会出现滚动条,但是还会发生什么呢?

设置可调整大小的布局的关键是调整布局项目/组的AlignHorizAlignVert属性。对于可调整大小的控件(例如备注或网格),将它们设置为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


希望能帮助到你

07-26 09:15