Grid、Canvas 或 StackPanel 等容器控件通过提供内置布局功能允许您快速设计各种有效的用户界面。每种容器控件处理其包含的控件的布局和位置,并且可以向包含的控件提供有助于定位的属性。本主题概述了不同类型的容器控件以及这些容器控件如何影响其包含的控件的布局。
Grid、Canvas 或 StackPanel 等容器控件通过提供内置布局功能允许您快速设计各种有效的用户界面。每种容器控件处理其包含的控件的布局和位置,并且可以向包含的控件提供有助于定位的属性。本主题概述了不同类型的容器控件以及这些容器控件如何影响其包含的控件的布局。
Grid
最为熟悉的容器控件是 Grid 控件。默认情况下,在 Visual Studio Windows Presentation Foundation (WPF) 设计器中打开的每个新 Window 中都包含一个 Grid 控件。Grid 允许您将控件放置在用户可定义的单元格内。对于放置在单元格内的控件,在调整 Window 的大小时,两个或更多个控件边缘与单元格边缘之间的边距保持固定不变。有关如何设置边距的更多信息,请参见如何:在 WPF 设计器中设置控件的边距。
添加到 Window 中时,Grid 控件包括单个单元格。可以在代码中或 WPF 设计器中添加更多垂直和水平行。有关更多信息,请参见如何:向网格中添加行和列。
UniformGrid
UniformGrid 控件为控件提供了一种简化的网格布局。当控件添加到 UniformGrid 时,它们会排列在一个网格模式中,该网格模式会自动调整以使控件之间的距离保持均匀。单元格的数目将进行调整,以适应控件的数目。例如,如果四个控件添加到 UniformGrid 中,它们将安排在包含四个单元格的网格中。
Canvas
Canvas 控件支持绝对定位并为其包含的控件提供最少的内置布局功能。Canvas 允许您将包含的控件放置在距离面板的任一角有一定偏移量的位置。Canvas 为包含的控件提供四种属性:Top、Bottom、Right 和 Left。Canvas 控件内包含的控件必须指定一个水平属性和一个垂直属性,并借此指定该控件将要偏离的角。例如,如果某个控件为 Top 和 Right 指定值,则该控件将与右上角之间保持不变的距离。如果为多个水平或垂直属性指定值,则这些值中的一个将被忽略。有关更多信息,请参见如何:根据绝对定位构造布局。
StackPanel
StackPanel 要么垂直叠放包含的控件,要么将包含的控件排列在水平行中,具体情况取决于 Orientation 属性的值。如果将比 StackPanel 的宽度能显示的控件还要多的控件添加到 StackPanel 中,这些控件将被截掉且不显示。
WrapPanel
在根据 Orientation 属性垂直叠放控件或者在行中放置控件方面,WrapPanel 与 StackPanel 类似。除了叠放外,WrapPanel 还为包含的控件提供了换行支持。因此,如果将比 WrapPanel 的宽度能显示的控件还要多的控件添加到 WrapPanel 中,这些控件将换行以形成另一个叠放或行。
DockPanel
DockPanel 提供停靠支持,以便让工具栏或您希望停靠在面板一侧的其他控件容易定位。DockPanel 控件向包含的控件提供了一个名为 DockStyle 的属性,该属性决定包含的控件的定位方式。例如,DockStyle 属性设置为 DockStyle.Top 的控件将停靠到 DockPanel 顶部。DockPanel 还公开了一个名为 LastChildFill 的属性。当此属性为 true 时,添加到 DockPanel 中的最后一个子控件将使其 DockStyle 属性自动设置为 true。
以上转自MSDN 的 “WPF 容器控件” 相关主题