1.WPF的UI布局
【1】布局的原则
第一、如果做屏幕适应的程序,不要显示设置元素(控制)尺寸,一般可以设置最小和最大尺寸。
第二、不应使用屏幕坐标指定位置元素,元素的位置应该由它所在的容器决定。
第三、布局容器可以嵌套。
【2】布局的容器
第一、Grid面板
第二、StackPanel面板
第三、Canvas面板
第四、DockPanel面板
第五、WrapPanel面板
2.Grid 面板(可以想象成一个table)
特点:
1.可以定义任意数量的行、列。并且轻松跨行、跨列。
2.行、列高度或者宽度可以设置绝对值、相对比例、自动调整等方式。
使用场合:
1.UI的大布局设计。
2.UI需要调整尺寸改变时
3.StackPanel面板
特点:
1.可以把内部元素纵在纵向或者横向上紧凑排列,形成栈式布局,通俗来说就是把元素堆到一块。
2.当把前面元素去掉后,后面的元素会整体向前移动,占领原有空间。
使用场合:
1.同类型原型需要紧凑排列(比如制作菜单或者列表)
2.移除其中的元素后能够自动补缺的布局或者动画。
三个属性:
1.orientaion:决定内部元素时横向还是纵向积累。
2.horizontalAlignment:决定内部元素水平方向上的对齐方式。
3.VerticalAlignment:决定内部元素垂直方向上的对齐方式。
4. Canvas面板(译文:画布)
特点:
1.在面板内部,我们可以通过x和y的坐标属性,直接控制控件的位置,非常类似windform 中top和left定位。
2.我们可以直接通过拖放的形式选择控件的位置。
使用场合:
1.一经设计基本上不会有改动的小布局。
2.需要使用绝对定位的布局。
3.依赖于横纵坐标的动画
4. Canvas面板(译文:画布)
特点:
1.在面板内部,我们可以通过x和y的坐标属性,直接控制控件的位置,非常类似windform 中top和left定位。
2.我们可以直接通过拖放的形式选择控件的位置。
使用场合:
1.一经设计基本上不会有改动的小布局。
2.需要使用绝对定位的布局。
3.依赖于横纵坐标的动画
5. DockPanel面板(停靠)
特点:
根据Dock属性值,元素向指定方向积累,切分DockPanel内部剩余空间,就像船舶停靠一样。
使用场合:
需要自动填满剩余空间的布局。(最后一个元素自动填满DockPanel内的剩余空间)
5. WrapPanel面板(流式布局,类似web中div的float)
特点:
1.在流延伸的方向上会排列尽可能多的空间,排列不下的控件会新起一行。
2.使用Orientaion属性控制流延伸的方向。
使用场合:
需要根据容器大小动态排列控件的场合。