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中的流式布局。