- WPF 教程
- WPF - 首页
- WPF - 概述
- WPF - 环境设置
- WPF - Hello World
- WPF - XAML 概述
- WPF - 元素树
- WPF - 依赖属性
- WPF - 路由事件
- WPF - 控件
- WPF - 布局
- WPF - 布局嵌套
- WPF - 输入
- WPF - 命令行
- WPF - 数据绑定
- WPF - 资源
- WPF - 模板
- WPF - 样式
- WPF - 触发器
- WPF - 调试
- WPF - 自定义控件
- WPF - 异常处理
- WPF - 本地化
- WPF - 交互
- WPF - 2D 图形
- WPF - 3D 图形
- WPF - 多媒体
- WPF 有用资源
- WPF - 快速指南
- WPF - 有用资源
- WPF - 讨论
WPF - 堆栈面板
堆栈面板 (Stack panel) 是 XAML 中一个简单而有用的布局面板。在堆栈面板中,子元素可以根据 orientation 属性沿水平或垂直方向排列成单行。它常用于创建任何类型的列表。StackPanel 类的层次继承如下:
StackPanel 常用属性
| 序号 | 属性和描述 |
|---|---|
| 1 | Background (背景) 获取或设置填充面板内容区域的 Brush。(继承自 Panel) |
| 2 | Children (子元素) 获取此 Panel 的子元素的 UIElementCollection。(继承自 Panel。) |
| 3 | Height (高度) 获取或设置元素的建议高度。(继承自 FrameworkElement。) |
| 4 | ItemHeight (项目高度) 获取或设置一个值,该值指定 WrapPanel 中包含的所有项目的 height。 |
| 5 | ItemWidth (项目宽度) 获取或设置一个值,该值指定 WrapPanel 中包含的所有项目的 width。 |
| 6 | LogicalChildren (逻辑子元素) 获取一个枚举器,该枚举器可以迭代此 Panel 元素的逻辑子元素。(继承自 Panel。) |
| 7 | LogicalOrientation (逻辑方向) 如果面板仅支持在一个维度上进行布局,则为面板的方向。(继承自 Panel。) |
| 8 | Margin (边距) 获取或设置元素的外边距。(继承自 FrameworkElement。) |
| 9 | Name (名称) 获取或设置元素的标识名称。该名称提供一个引用,以便代码隐藏(例如事件处理程序代码)可以在 XAML 处理器在处理过程中构造标记元素后引用它。(继承自 FrameworkElement。) |
| 10 | Orientation (方向) 获取或设置一个值,该值指定排列子内容的维度。 |
| 11 | Parent (父元素) 获取此元素的逻辑父元素。(继承自 FrameworkElement。) |
| 12 | Resources (资源) 获取或设置局部定义的资源字典。(继承自 FrameworkElement。) |
| 13 | Style (样式) 获取或设置此元素呈现时使用的样式。(继承自 FrameworkElement。) |
| 14 | Width (宽度) 获取或设置元素的宽度。(继承自 FrameworkElement。) |
示例
下面的示例演示如何将子元素添加到 StackPanel。以下 XAML 实现创建了具有某些属性的 StackPanel 内的按钮。
<Window x:Class = "WPFStackPanel.MainWindow"
xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d = "http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local = "clr-namespace:WPFStackPanel"
mc:Ignorable = "d" Title = "MainWindow" Height = "350" Width = "604">
<Grid>
<StackPanel Orientation = "Horizontal">
<Button x:Name = "button" Content = "Button" Margin = "10" Width = "120" Height = "30" />
<Button x:Name = "button1" Content = "Button" Margin = "10" Width = "120" Height = "30" />
<Button x:Name = "button2" Content = "Button" Margin = "10" Width = "120" Height = "30" />
<Button x:Name = "button3" Content = "Button" Margin = "10" Width = "120" Height = "30" />
</StackPanel>
</Grid>
</Window>
编译并执行上述代码后,将生成以下窗口。您可以看到子元素按水平顺序排列。您可以通过将 orientation 属性设置为 Horizontal 来更改排列方式。默认情况下,子元素将按垂直顺序排列。
我们建议您执行上述示例代码,并尝试此类的其他属性。