本主题包括下列各节。
- Silverlight 插件的位置和尺寸
- 布局系统
- 元素边界框
- 测量和排列子元素
- Panel 元素和自定义布局行为
- 窗口大小调整
- 相关主题
-
插件内:将 Silverlight 图面上的对象定位在该插件的边界框内。 大多数布局概述都介绍了此类型的定位。 -
HTML 内:整个插件以及位于它里面的所有对象都受插件在 HTML 中的放置位置的限制。 有关该插件的更多信息,请参见使用 HTML 或 JavaScript 将 Silverlight 添加到网页。
![]() |
---|
|
-
测量每个子 UIElement。
-
计算在 FrameworkElement 上定义的大小调整属性,例如 Width、Height 和 Margin。
-
应用 Panel 特定的逻辑,例如堆栈 Orientation。
-
测量所有子元素后排列内容。
-
Children 集合绘制到屏幕。
-
如果其他 Children 添加到了集合中、Children 的布局属性(如 Width 和 Height)发生了改变或调用了 UpdateLayout 方法,均会再次调用该过程。
下面的章节将更详尽地定义此过程及其调用方式。
下图演示了父面板、其子元素以及包含该子元素的布局槽的尺寸。

下图演示了一个子元素,该子元素进行了旋转,并且现在超出了分配给它的布局槽。

测量
![]() |
---|
|
排列
![]() |
---|
|
下表概括了可用的布局元素。
面板名称 |
描述 |
---|---|
Canvas |
定义一个区域,在此区域内,您可以使用相对于 Canvas 区域的坐标显式定位子元素。 |
Grid |
定义由行和列组成的灵活网格区域。 |
StackPanel |
将子元素排列成一行(可沿水平或垂直方向)。 |
属性名 |
布局影响 |
---|---|
Margin |
在对象及其布局槽之间创建空间。 |
|
将对象定位到其布局槽内。 |
Canvas.ZIndex |
在两个对象重叠时将一个对象定位到另一个对象的顶部。 |
<UserControl x:Name="RootElement" x:Class="WindowResizingSample.Page" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <Grid x:Name="LayoutRoot" Background="White"> </Grid> </UserControl>