XAML常用的五个布局元素

开发工具与关键技术:Visual Studio 2015、C#.WPF
作者:周水生
撰写时间:2019年5月14日

布局1. Grid网格
简介;Grid顾名思义就是“网格”, 它的子控件被放在一个一个实现定义好的小格子里面,整齐配列。Grid和其他各个Panel比较起来,功能最多也最为复杂。

特点: 可以定义任意数量的行和列,非常灵活。 行的高度和列的宽度可以使用绝对值、相对比例或自动调整的方式进行精确设定,并可以设置最大和最小值。 内部元素可以设置自己所在的行和列,还可以设置自己纵向跨几行,横向跨几列。 可以设置Children元素的对齐方向。
下面是Grid网格用法的举例:
XAML常用的五个布局元素

布局2.DockPanel:泊靠式面板DockPanel;定义一个区域,在此区域中,您可以使子元素通过描点的形式排列,这些对象位于 Children 属性中。默认情况下,后添加的元素只能使用剩余空间,无论对DockPanel的最后一个子元素设置任何停靠值,该子元素都将始终填满剩余的空间。如果不 希望最后一个元素填充剩余区域,可以将DockPanel属性LastChildFill设置为false,还必须为最后一个子元素显式指定停靠方向。适合于专门负责自适应窗口的布局
举例:
XAML常用的五个布局元素
布局3. StackPanel:栈式面板
StackPanel就是将控件按照行或列来顺序排列,但不会换行。 通过设置面板的Orientation属性设置了两种排列方式:横排(Horizontal默认的)和竖排(Vertical)。每个元素各占一行或者一列;适用于同类元素需要紧凑排列(如制作菜单和列表)。 移除其中的元素后能够自动补缺的布局或者动画。
XAML常用的五个布局元素

可以通过Orientation决定菜单的排列方向,其中Vertical垂直排列,Horizontal水平排列;

布局四:WrapPanel:自动折行面板(环绕面板)
WrapPanel布局面板将各个控件从左至右按照行或列的顺序罗列,当长度或高度不够时就会自动调整进行换行,后续排序按照从上至下或从右至左的 顺序进行。 Orientation——根据内容自动换行。当Orientation属性的值设置为 Horizontal:元素是从左向右排列的,然后自上至下自动换行。当Orientation属 性的值设置为Vertical:元素是从上向下排列的,然后从左至右自动换行。 ItemHeight——所有子元素都一致的高度。每个子元素填充高度的方式取决于它的VerticalAlignment属性、Height属性等。任何比ItemHeight高的 元素都将被截断。
XAML常用的五个布局元素

布局五:Canvas:画布面板
画布,用于完全控制每个元素的精确位置。他是布局控件中最为简单的一种,直接将元素放到指定位置,主要来布置图面。 使用Canvas,必须指定一个子元素的位置(相对于画布),否则所有元素都将出现在画布的左上角。调整位置用Left、Right、Top和Bottom四个 附加属性。
XAML常用的五个布局元素