XAML布局元素

本文详细介绍了WPF的XAML布局元素,包括Grid、DockPanel、UniformGrid和WrapPanel。Grid是最复杂且功能最多的布局元素,允许自定义行列,支持绝对、相对和自动尺寸设定。DockPanel提供了泊靠式布局,而UniformGrid则是Grid的简化版,具有统一大小的单元格。最后,WrapPanel实现了自动折行布局,根据内容的长度自动换行。

这个月,学习了WPF的XAML布局元素。XAML布局元素有六种。前面已经学习了几种。UniformGrid与WrapPanel也是XAML布局元素。
比如Grid布局元素。Grid顾名思义就是网格。通过Grid,可以自定义行和列并通过行列的数量、行高列宽来调整控件的布局。近似Html中的table。它的子控件被放在一个一个实现定义好的小格子里面,整齐配列。Grid和其他各个Panel比较起来,功能最多也最为复杂。
Grid可以定义任意数量的行和列,非常灵活。行的高度和列的宽度可以使用绝对值、相对比例或自动调整的方式进行精确设定并可以设置最大和最小值。内部元素可以设置自己所在的行和列Grid.Row和Grid.Column,还可以设置自己纵向跨几行Grid.RowSpan,横向跨几列Grid.ColumnSpan。
在Grid面板中的控件元素都必须显示采用附加属性语法定义其放置所在的行和列,它们都是以0为基准的整型值,如果没有显式设置任何行或列,Grid将会隐式地将控件加入在第0行第0列。Grid的常用属性:Column 列 ,ColumnSpan即列跨度,即跨列 ,Row 行 ,RowSpan 行跨度,即跨行。也就是说我们需要在Grid面板中的控件元素采用附加属性语法定义这4个属性,说明控件元素在第几行,第几列,跨几行,跨几列。
Grid高度、宽度的几种定义方式:绝对尺寸 即固定长度; 自动(Autosizing),值为Auto; StarSizing,即比例长度
Grid的适用场合有有3种:①:UI布局的大框架设计。②:大量UI元素需要成行或者成列对齐的情况。③:UI尺寸改变的时候,元素需要保留固有的宽度和高度比列。
DockPanel元素。DockPanel元素即泊靠式面板。DockPanel会定义一个区域,在此区域中,您可以使子元素通过描点的形式排列,这些对象位于 Children 属性中。DockPanel会对每个子元素进行排序,并将根据指定的边进行停靠,多个停靠在同侧的元素则按顺序排序。在DockPanel中,指定停靠边的控件,会根据定义的顺序占领边角,所有控件绝不会交叠。默认情况下,后添加的元素只能使用剩余空间,无论对DockPanel的最后一个子元素设置任何停靠值,该子元素都将始终填满剩余的空间。如果不希望最后一个元素填充剩余区域,可以将DockPanel属性LastChildFill设置为false,还必须为最后一个子元素显式指定停靠方向
DockPanel停靠容器,专门负责自适应窗口的布局。
现在由学习UniformGrid即均分布局 ,也就是Grid的简化版。UniformGrid,每个单元格的大小相同,不需要定义行列集合。每个单元格始终具有相同的大小,每个单元格只能容纳一个控件,将自动按照定义在其内部的元素个数,自动创建行列,并通常保持相同的行列数。不同的是UniformGrid 中没有Row 和Column 附加属性,也没有空白单元格。与Grid布局控件相比,UniformGrid布局控件很少使用。Grid面板是用于创建简单乃至复杂窗口布局的通用工具。UniformGrid面板是一个一种更特殊的布局容器,主要用于在一个刻板的网格中快速地布局元素。UniformGrid 布局面板和Grid 面板相似,将子元素按照行列的方式排列。但是与以Grid 相比,UniformGrid有几个独特的优势。①:不需要指定行和列的大小②:所有列都是相同的宽度③:所有行都是相同的高度这④:要指定预期的行和列的数目⑤:不需要给子元素指定所在的行和列
WrapPanel即自动折行面板,也叫环绕面板。 WrapPanel布局面板将各个控件从左至右按照行或列的顺序罗列,当长度或高度不够时就会自动调整进行换行,后续排序按照从上至下或 从右至左的顺序进行。
Orientation——根据内容自动换行。当Orientation属性的值设置为 Horizontal:元素是从左向右排列的,然后自上至下自动换行。当 Orientation属性的值设置为Vertical:元素是从上向下排列的,然后从左至右自动换行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值