其他分享
首页 > 其他分享> > 03_布局

03_布局

作者:互联网

WPF用不同的容器(container)来实现布局。布局包括两个阶段:测量(measure)阶段排列(arrange)阶段
在测量阶段,容器遍历所有子元素,并询问子元素它们期望的尺寸。在排列阶段,容器在合适的位置放置子元素。

布局容器不能提供任何滚动支持,滚动时由特定的内容控件-ScrollViewer-提供的。

布局容器

所有WPF布局容器都派生自 System.Windows.Controls.Panel 抽象类的面板,并提供了三个公共属性。

名称 说明
Background 面板的背景色。如果向接收鼠标事件必须设置为非空值
Children 面板中存储的条目集合
IsItemsHost 显示与ItemsControl控件关联的项,该属性值为 true

StackPanel

StackPanel 面板在单行或单列中以堆栈形式放置其子元素。
默认按自上而下的顺序排列元素,使每个元素的高度适合它的内容。通过设置 Orientation 属性也可用于水平排列元素。

对齐方式
<StackPanel>
    <Label BorderThickness="1" BorderBrush="Red">lebel 1</Label>
    <Button HorizontalAlignment="Left">Button 1</Button>
    <Button HorizontalAlignment="Right">Button 2</Button>
    <Button HorizontalAlignment="Center">Button 3</Button>
    <Button >Button 4</Button>
</StackPanel>

上面代码中有个垂直方向的 StackPanel 面板 - VerticalAlignment 属性不起作用,因为所有元素的高度都自动调整为刚好满足各自需求,但 HorizontalAlignment 属性决定了各个元素在行的什么位置。

WrapPanel

这两个布局容器通过不同的布局行为对 StackPanel 面板进行补充。
与 StackPanel 面板类似,WrapPanel 面板实际上主要用来控制用户界面中一小部分的布局细节,并非用于控制整个窗口布局。

WrapPanel 面板是唯一一个不能通过灵活使用 Grid 面板代替的面板。

DockPanel

DockPanel 提供停靠功能。停靠的顺序不同会导致不同的结果。

Grid

Grid面板是 WPF 中功能最强大的布局容器,会把空间划分成网格。

分隔窗口

分割条由 GridSplitter 类表示,能将窗口的一部分与另一部分分离的可拖动分割器。

Canvas

Canvas 面板允许使用精确的坐标放置元素。Canvas 面板是最轻量级的布局容器。

Z 顺序

如果canvas面板中由多个相互重叠的元素,可设置 Canvas.ZIndex 附加属性来控制它们的层叠方式。

Border控件

Border控件不是布局面板,经常与布局面板一起使用。Border 只能包含一段嵌套内容,并为其添加背景或在其周围添加边框。

名称 说明
Background 设置边框中所有内容的背景
BorderBrush BorderThickness 边框颜色和宽度
CornerRadius 使边框具有雅致的圆角
Padding 在边框和内部的内容之间添加空间

我的公众号

标签:03,元素,容器,StackPanel,布局,面板,属性
来源: https://www.cnblogs.com/jqwang/p/15483211.html