WPF作为专业的界面技术,布局功能是它的核心技术之一。友好的用户界面和良好的用户体验离不开设计精良的布局。日常工作中,WPF设计师最大的工作量就是布局和动画。除了点缀型的动画之外,大部分布局都是动画间的转换,UI布局的重要性可见一斑。布局是静态的,动画是动态的,用户体验就是用户在这动静之中与软件功能产生交互式的感受。
布局元素
Grid: 网格。可以自定义行和列并通过行列的数量、行高列宽来调整控件的布局。近似于Html中的table。
StackPanel:栈式面板。可将包含的元素在水平或垂直方向排成一条线,当移除一个元素后,后面的元素会自动向前填充空缺。
Canvas: 画布。内部元素可以使用以像素为单位的绝对坐标进行定位,类似于Windows Form的布局方式。
DockPanel: 泊靠式面板。内部元素可以选择泊靠的方向,类似于Winform中设置控件的Dock属性。
WrapPanel: 自动折行面板。内部元素在排满一行后能够自动折行,类似于Html中的流式布局。
【Grid】
特点:
可以定义任意数量的行和列,非常灵活。
行的高度和列的宽度可以使用绝对值、相对比例或自动调整的方式进行精确设定,并可以设置最大和最小值。
内部元素可以设置自己所在的行和列,还可以设置自己纵向跨几行,横向跨几列。
可以设置Children元素的对齐方向。
基于以上这些特点,Grid的适用场合有:
UI布局的大框架设计。
大量UI元素需要成行或者成列对齐的情况。
UI尺寸改变的时候,元素需要保留固有的宽度和高度比例。
UI后期可能有较大的变更或扩展。
【StackPanel】
使用场合:
同类元素需要紧凑排列(如制作菜单和列表)。
移除其中的元素后能够自动补缺的布局或者动画。
【Canvas】
使用场合:
一经设计,基本上不用再有改动的小型布局。(如图标)
艺术性较强的布局。
需要使用大量纵横坐标来进行绝对定位的布局。
依赖纵横坐标的动画。
网友评论