C# WPF布局控件LayoutControl介绍

Dev学习地址

文档地址 :https://docs.devexpress.com/

wpf:https://docs.devexpress.com/WPF/7875/wpf-controls

winform:https://docs.devexpress.com/WindowsForms/7874/winforms-controls

asp.NET: https://docs.devexpress.com/AspNet/7873/aspnet-webforms-controls

blazor :https://docs.devexpress.com/Blazor/400725/blazor-components

概述

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

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

e01a155cdac979831440fff56d8654b1.png

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

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

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

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

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

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

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

LayoutControl的元素

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

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

LayoutGroupView.GroupBox

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

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

3d34c0d2a6ba7cfeba7a09841bac447f.png

-. LayoutGroupView.Group:

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

1bb63fa8af511ff8498c6dd1aad23869.png

-. LayoutGroupView.Tabs:

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

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

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

04e7afb42612d55402bf676c1dd9b247.png

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

35629d4cc0520ba07cb54b263504c7a6.png

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

Items排布

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

065bac8957cab4ff7610c23427e48b8b.png

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

5877090a9c022a2ab37e9291945b1008.png

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

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

技术群:添加小编微信并备注进群

小编微信:mm1552923   

公众号:dotNet编程大全    

一.该类的作用: 该类可以帮大家自动布局界面控件,不需要开发人员每个控件的设置属性,只需要调用方法,自动会设置该控件布局,并且控件的宽度随着窗体的变化而变化,该方法调用很简单 二.原理:使用TableLayOutPanle的功能,然后设定里面每个控件的样式 三.使用方法: 1)首先在录入数据的地方用GroupBox或者Panle作为容器(目前里面配置了这2中数据信息用户可以在ParentControlHeader类中进行相应配置) 2)然后在该容器中加入TableLayOutPanle控件,并设定行和列(例如:设定6列,奇数列的宽度都是绝对值:例如100px ,偶数列的宽度都设定为33%) 3)大家可以把相应的控件放入到TableLayOutPanle的相应单元格子中,(奇数列是标题列,偶数列是输入列) 4)在Load事件中这样调用就OK了 TableFormat tf = new TableFormat(tableLayoutPanel1); //此方法可以适用于父级控件是GroupBox或者Panel,您也可一修改 ParentControlHeader类中的配置文件,加入新的值,或者是修改已经设定的值 tf.SetTableFormat(true, PControlType.GroupControl); 这样,大家不需要设定每个TableLayout控件中的子控件的任何属性,TableFormat类帮自动布局界面上的控件,并且随着窗体的变化,控件是自动变化的,当然里面有些参数,是可以设定父级控件(GroupPanle/Panle的高度=里面行高(自动计算)+用户配置高度(目前配置了GroupBox和Panle) 详细可见Demo,代码注释写的比较详细,大家可以参考下. 谢谢..^_^.. (鼓励0资源分上传)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值