一、Grid
二、StackPanel
三、WrapPanel
四、DockPanel
五、UniformGrid
六、Canvas
七、ScrollViewer
八、ViewBox
九、Border
*
*
*
一、Grid
Grid为WPF中最常用的布局容器, 作为View中的主要组成部分, 负责框架中整体的页面布局。
ShowGridLines:可以设置行业的边距线的显示
Grid.RowDefinitions:可以创建任意【行】, 进行固定高度与百分比高度设置
Grid.ColumnDefinitions:可以创建任意【列】, 进行固定宽度与百分宽度设置
*
二、StackPanel
StackPanel将控件按照行或列【顺序布局】,但不会换行。通过设置面板的Orientation属性设置了两种排列方式:横排(Horizontal默认的)和竖排(Vertical),默认为竖排(Vertical)。
Orientation:用于设置StackPanel的元素排列方式。默认以垂直的方式布局
Horizontal:水平布局, 设置水平效果
Vertical:垂直布局, 设置垂直效果
*
三、WrapPanel
WrapPanel具有在有限的容器范围内, 可以【自动换行、自动换列】处理。具体则取决于WrapPanel的排列方式 (Orientation)。
Orientation="Horizontal"时各控件从左至右罗列,当面板长度不够时,子控件就会自动换行,继续按照从左至右的顺序排列
Orientation="Vertical"时各控件从上至下罗列,当面板高度不够时,子控件就会自动换列,继续按照从上至下的顺序排列
*
四、DockPanel
DockPanel支持让元素简单地【停靠在整个面板的某一条边上】,然后拉伸元素以填满全部宽度或高度。它也支持让一个元素填充其他已停靠元素没有占用的剩余空间。
包含在DockPanel中的元素, 具备DockPanel.Dock的4个枚举值(Top/Left/Right/Bottom)用于设置元素的锚定位置
LastChildFill:容器中的最后一个元素时, 默认该元素填充DockPanel所有空间, 默认值为True
DockPanel中的元素未显示添加DockPanel.Dock属性时, 系统则会默认为 DockPanel.Dock="Left"
*
五、UniformGrid
UniformGrid就是Grid的简化版,每个单元格的大小相同,不需要定义行列集合。每个单元格始终具有相同的大小,每个单元格只能容纳一个控件。
与Grid不同的是, 该容器具备Columns/Rows 属性, 通过设置该属性, UniformGrid则具备相应的 行与列, 但是设置的Columns/Rows不允许单独的进行容器的大小设置
位于UniformGrid中的子元素, 按输入顺序排列至容器中, 直至填充容器的所有空间
未显示指定Columns/Rows, UniformGrid则为子元素动态分配Columns/Rows, 换行与换列的基 准主要基于UniformGrid的容器大小( 宽度与高度)
*
六、Canvas
Canvas是一个类似于坐标系的面板,所有的元素通过设置坐标来决定其在坐标系中的位置。具体表现为使用Left、Top、Right、 Bottom附加属性在Canvas中定位控件。
如果同时设置 Canvas.Left="50",Canvas.Right="50",则以Canvas.Left="50"为准
如果同时设置Canvas.Top="50",Canvas.Bottom="50",则以Canvas.Top ="50"为准
*
七、ScrollViewer
ScrollViewer是带有滚动条的面板。在ScrollViewer中只能有一个子控件,若要显示多个子控件,需要将一个附加的 Panel控件放置在父 ScrollViewer中。然后可以将子控件放置在该控件中。
HorizontalScrollBarVisibility:水平滚动条是否显示默认为Hidden
VerticalScrollBarVisibility:垂直滚动条是否显示 默认为Visible
一般我们都会设置 HorizontalScrollBarVisibility="Auto",VerticalScrollBarVisibility="Auto",意思是:当内容超出可视范围时,才显示横向/纵向滚动条。
*
八、ViewBox
Viewbox的作用是拉伸或延展位于其中的组件,以填满可用空间。在Viewbox中只能有一个子控件,若要显示多个子控件,需要将一个附加的Panel控件放置在父Viewbox中。然后可以将子控件放置在该控件中。
常用属性:Stretch:获取或设置拉伸模式以决定该组件中的内容以怎样的形式填充该组件的已有空间,Stretch默认值为Uniform。
None:不进行拉伸,按子元素设置的长宽显示
Uniform:按原比例缩放子元素,使得一边不足,另一边恰好填充
Fill:缩放子元素,使得子元素的长变为Viewbox的长,宽变为Viewbox的宽
UniformToFill:按原比例缩放子元素,使得子元素一边恰好填充,另一边超出Viewbox的区域
*
九、Border
Border 是一个装饰的控件,此控件用于绘制边框及背景,在Border中只能有一个子控件,若要显示多个子控件,需要将一个附加的Panel控件放置在父Border中。然后可以将子控件放置在该 Panel控件中。
Background:背景色
BorderBrush:边框色
BorderThickness:边框宽度
CornerRadius:各个角,圆的半径
*
*
*
*