C# WPF布局控件LayoutControl介绍

概述

LayoutControl是一个项目容器,将这些项目安排在一行或一列中。

可以将LayoutGroup容器作为子容器添加到LayoutControl。LayoutGroup容器允许您将其项目并排(垂直或水平)或作为选项卡进行排列。LayoutGroup可以包含其他LayoutGroup对象作为子对象,以不同的方向排列它们的项目。这允许创建非线性布局:.

C# WPF布局控件LayoutControl介绍

使用LayoutControl的最大好处是,它会自动维护子控件的一致布局。即使调整窗口大小、添加或删除控件,或者更改控件的字体设置,控件也不会重叠。(如果手动调整控件的边距属性,控件可能会重叠)。

除了一致的布局功能外,LayoutControl还提供以下功能:

使用LayoutItem包装器自动对齐嵌入LayoutControl的控件。这些控件将根据其关联的标签自动与其左边缘对齐。有关详细信息,请参见对齐布局项的内容。

通过内置大小调整器调整子项和组的大小。

在组或布局控件中对齐项目。可以将项目与其父控件的任何边缘对齐、居中或拉伸。当父项的大小更改时,该项将相应地调整其位置。有关详细信息,请参见在LayoutGroup和LayoutControl对象中对齐项目。

在自定义模式下自定义布局。在此模式下,最终用户可以通过拖放修改项目的布局,并更改组内控件的对齐方式。有关详细信息,请参见自定义模式。

组可以呈现为选项卡容器或GroupBox对象(带有标题的容器)。

LayoutControl的元素

LayoutControl接受任何类型的项。然而,以下项目类型是最典型的:

-. LayoutGroup。它表示一个容器控件,可以并排(在一行或一列中)或以选项卡的形式显示其子控件。您可以使用LayoutGroup。View属性指定布局组的视觉样式:

LayoutGroupView.GroupBox

根据LayoutGroup,该组的孩子被安排在一列或一行中。方向属性。

在此模式下,组的标题(LayoutGroup.header)和边框可见。此外,还可以通过LayoutGroup启用组折叠功能。

C# WPF布局控件LayoutControl介绍

-. LayoutGroupView.Group:

该组呈现为无外观容器,没有边框和标题。与前面的视觉样式一样,项目根据LayoutGroup排列在一列或一行中。方向属性。

C# WPF布局控件LayoutControl介绍

-. LayoutGroupView.Tabs:

该组呈现为选项卡式组,其中直接子级表示为选项卡。通过将多个项目组合到单个布局组中,并将该组作为子项添加到选项卡组中,可以在单个选项卡中显示多个项目。

要为子项指定选项卡标题,请使用以下属性。如果LayoutGroup是选项卡式组的子级,请使用该组的LayoutGroup。标题属性。对于其他项目,请使用LayoutControl。TabHeader附加属性。

LayoutControl将位于选项卡组中非活动选项卡内的元素的IsEnabled属性设置为False。选择以前不活动的选项卡后,iEnabled属性值将恢复。

C# WPF布局控件LayoutControl介绍

LayoutItem:这是一个显示控件标签的对象:

C# WPF布局控件LayoutControl介绍

它还具有组内和组间控件的自动对齐功能。有关详细信息,请参阅布局项目和组。

Items排布

在LayoutControl中将LayoutGroups用作子级可以实现复合布局。考虑在LayoutControl中排列的项目的以下布局:

C# WPF布局控件LayoutControl介绍

要创建上图所示的布局,将要按相同方向排列的项目组合到同一组中。然后,将这些组合并到其他组中,等等。为了了解此布局是如何构建的,让我们让组的边框和标题可见:

C# WPF布局控件LayoutControl介绍

在这里,这些项目组合如下:

LayoutControl垂直排列组1和组5。

第一组水平排列第二组和一个标签组。

第2组垂直排列第1项和第3组。

第3组水平排列第2项和第4组。

第四组垂直排列两个项目。

选项卡组包含两个选项卡(选项卡1和选项卡2)。每个选项卡都包含特定的项。例如,由布局组表示的选项卡1垂直排列项目5和项目6。

第五组水平排列三个项目。

最后声明

本文翻译自:https://docs.devexpress.com/WPF/8147/controls-and-libraries/layout-management/tile-and-layout/layout-and-data-layout-controls/layout-control