作者:mobiledu2502855757 | 来源:互联网 | 2023-09-06 16:44
WPF用不同的容器(container)来实现布局。布局包括两个阶段:测量(measure)阶段和排列(arrange)阶段。在测量阶段,容器遍历所有子元素,并询问子元素它们期望的
WPF用不同的容器(container)来实现布局。布局包括两个阶段:测量(measure)阶段 和排列(arrange)阶段 。 在测量阶段,容器遍历所有子元素,并询问子元素它们期望的尺寸。在排列阶段,容器在合适的位置放置子元素。
布局容器不能提供任何滚动支持,滚动时由特定的内容控件-ScrollViewer-提供的。
布局容器 所有WPF布局容器都派生自 System.Windows.Controls.Panel 抽象类的面板,并提供了三个公共属性。
名称 说明 Background 面板的背景色。如果向接收鼠标事件必须设置为非空值 Children 面板中存储的条目集合 IsItemsHost 显示与ItemsControl控件关联的项,该属性值为 true
StackPanel StackPanel 面板在单行或单列中以堆栈形式放置其子元素。 默认按自上而下的顺序排列元素,使每个元素的高度适合它的内容。通过设置 Orientation 属性也可用于水平排列元素。
对齐方式 lebel 1 Button 1 Button 2 Button 3 Button 4
上面代码中有个垂直方向的 StackPanel 面板 - VerticalAlignment 属性不起作用,因为所有元素的高度都自动调整为刚好满足各自需求,但 HorizontalAlignment 属性决定了各个元素在行的什么位置。
WrapPanel 这两个布局容器通过不同的布局行为对 StackPanel 面板进行补充。 与 StackPanel 面板类似,WrapPanel 面板实际上主要用来控制用户界面中一小部分的布局细节,并非用于控制整个窗口布局。
WrapPanel 面板是唯一一个不能通过灵活使用 Grid 面板代替的面板。
DockPanel DockPanel 提供停靠功能。停靠的顺序不同会导致不同的结果。
Grid Grid面板是 WPF 中功能最强大的布局容器,会把空间划分成网格。
分隔窗口 分割条由 GridSplitter 类表示,能将窗口的一部分与另一部分分离的可拖动分割器。
GridSplitter 必须放在单元格中。推荐预留一列或一行专门用于放置 GridSplitter ,并设置 Height或Width 属性值为 Auto GridSplitter 总是改变整行或整列的尺寸。 对于竖直分割条需将 VerticalAlignment 属性设置为 Stretch 并将Width设置为固定值。 Canvas Canvas 面板允许使用精确的坐标放置元素。Canvas 面板是最轻量级的布局容器。
Z 顺序 如果canvas面板中由多个相互重叠的元素,可设置 Canvas.ZIndex 附加属性来控制它们的层叠方式。
Border控件 Border控件不是布局面板,经常与布局面板一起使用。Border 只能包含一段嵌套内容,并为其添加背景或在其周围添加边框。
名称 说明 Background 设置边框中所有内容的背景 BorderBrush BorderThickness 边框颜色和宽度 CornerRadius 使边框具有雅致的圆角 Padding 在边框和内部的内容之间添加空间
我的公众号