WPF中的UI布局主要有:Grid(网格)、StackPanel(栈式面板)、Canvas(画布)、DockPanel(泊靠式面板)、WrapPanel(自动折行面板)
一、Grid
1、描述:网格,自定义行和列,并通过行列的数量、行高列宽来调整控件的布局,近似于HTML中的table。
2、特点:
(1)可以定义任意数量的行和列,非常灵活
(2)行的高度和列的宽度可以使用绝对值、相对比例、自动调整的方式进行精确设定,并可以设置最大和最小值。
(3)内部元素可以设置自己所在的行和列,还可以设置自己纵向跨几行,横向跨几列。
(4)可以设置Children元素的对齐方向。
3、应用场合:
(1)UI布局的大框架设计
(2)大量UI元素需要成行或者成列对齐的情况。
(3)UI尺寸改变的时候,元素需要保留固有的宽度和高度比例
(4)UI后期可能有较大的变更或扩展。
二、StackPanel
1、描述:栈式面板。可将包含的元素在水平或垂直方向排成一条线,当移除一个元素后,后面的元素会自动向前填充空缺。
2、使用场合:
(1)同类元素需要紧凑排列(如制作菜单和列表)
(2)移除其中的元素后能够自动补缺的布局或者动画。
三、Canvas
1、描述:画布,内部元素可以使用以像素为单位的绝对坐标进行定位,类似于Windows Form的布局方式。
2、使用场合:
(1)一经设计,基本上不用再有改动的小型布局(如图标)
(2)艺术性较强的布局
(3)需要使用大量纵横坐标来进行绝对定位的布局。
(4)依赖纵横坐标的动画
四、DockPanel
1、描述:泊靠式面板,内部元素可以选择泊靠的方向,类似于Winform中设置控件的Dock属性。
五:WrapPanel
1、描述:自动折行面板,内部元素在排满一行后能够自动折行,类似于HTML中的流式布局。