WPF 容器控件概述

GridCanvasStackPanel 等容器控件通过提供内置布局功能允许您快速设计各种有效的用户界面。 每种容器控件处理其包含的控件的布局和位置,并且可以向包含的控件提供有助于定位的属性。 本主题概述了不同类型的容器控件以及这些容器控件如何影响其包含的控件的布局。

布局舍入

设置容器控件的 UseLayoutRounding 属性,以指定何时将传递 MeasureArrange 的过程中所计算的非整数像素值舍入到整数像素值。 子控件会继承此属性。

网格

最为熟悉的容器控件是 Grid 控件。 默认情况下,在 适用于 Visual Studio 的 WPF 设计器中打开的每个新 Window 中都包含一个 Grid 控件。 Grid 允许您将控件放置在用户可定义的单元格内。 对于放置在单元格内的控件,在调整 Window 的大小时,两个或更多个控件边缘与单元格边缘之间的边距保持固定不变。 有关如何设置边距的更多信息,请参见如何:在 WPF 设计器中设置控件的边距

添加到 Window 中时,Grid 控件包括单个单元格。 可以在代码中或 WPF 设计器中添加更多垂直和水平行。 有关更多信息,请参见如何:向网格中添加行和列

UniformGrid

UniformGrid 控件为控件提供了一种简化的网格布局。 当控件添加到 UniformGrid 时,它们会排列在一个网格模式中,该网格模式会自动调整以使控件之间的距离保持均匀。 单元格的数目将进行调整,以适应控件的数目。 例如,如果四个控件添加到 UniformGrid 中,它们将安排在包含四个单元格的网格中。

Canvas

Canvas 控件支持绝对定位并为其包含的控件提供最少的内置布局功能。 Canvas 允许您将包含的控件放置在距离面板的任一角有一定偏移量的位置。 Canvas 为包含的控件提供四种属性:TopBottomRightLeftCanvas 控件内包含的控件必须指定一个水平属性和一个垂直属性,并借此指定该控件将要偏离的角。 例如,如果某个控件为 TopRight 指定值,则该控件将与右上角之间保持不变的距离。 如果为多个水平或垂直属性指定值,则这些值中的一个将被忽略。 有关更多信息,请参见如何:根据绝对定位构造布局

StackPanel

StackPanel 要么垂直叠放包含的控件,要么将包含的控件排列在水平行中,具体情况取决于 Orientation 属性的值。 如果将比 StackPanel 的宽度能显示的控件还要多的控件添加到 StackPanel 中,这些控件将被截掉且不显示。

WrapPanel

在根据 Orientation 属性垂直叠放控件或者在行中放置控件方面,WrapPanelStackPanel 类似。 除了叠放外,WrapPanel 还为包含的控件提供了换行支持。 因此,如果将比 WrapPanel 的宽度能显示的控件还要多的控件添加到 WrapPanel 中,这些控件将换行以形成另一个叠放或行。

DockPanel

DockPanel 提供停靠支持,以便让工具栏或您希望停靠在面板一侧的其他控件容易定位。 DockPanel 控件向包含的控件提供了一个名为 DockStyle 的属性,该属性决定包含的控件的定位方式。 例如,DockStyle 属性设置为 DockStyle.Top 的控件将停靠到 DockPanel 顶部。 DockPanel 还公开了一个名为 LastChildFill 的属性。 当此属性为 true 时,添加到 DockPanel 中的最后一个子控件将使其 DockStyle 属性自动设置为 true。

TabControl

TabControl 类包含在屏幕上共享相同空间的多个选项卡项。 可以使用 WPF 设计器添加和移除选项卡项。 有关更多信息,请参见如何:向 TabControl 中添加选项卡项

请参见

其他资源

WPF 容器控件

Grid

Canvas

StackPanel

WrapPanel

DockPanel

TabControl