WPF 中的 StackPanel 和 DockPanel 有啥区别?

Posted

技术标签:

【中文标题】WPF 中的 StackPanel 和 DockPanel 有啥区别?【英文标题】:What is the difference between a StackPanel and DockPanel in WPF?WPF 中的 StackPanel 和 DockPanel 有什么区别? 【发布时间】:2011-05-18 06:39:59 【问题描述】:

DockPanel 能做什么而StackPanel 不能?如果有人有一个可以通过StackPanel 而非DockPanel 实现的图像,那就太好了。

【问题讨论】:

【参考方案1】:

堆栈面板StackPanel,顾名思义,水平或垂直排列内容。垂直是默认设置,但可以使用 Orientation 属性进行更改。内容会根据方向自动拉伸(参见下面的屏幕截图),这可以通过更改 HorizontalAlignmentVerticalAlignment 属性来控制。

Dock PanelDockPanel 用于将元素锚定到容器的边缘,是设置应用程序 UI 整体结构的不错选择。元素使用DockPanel.Dock 附加属性停靠。元素停靠的顺序决定了布局。

【讨论】:

A StackPanel 不会将其子级限制为可用大小,而 DockPanel 将调整最后一个子级以占用所有剩余空间。 stackpanel-dockpanel-and-scrolling-items

以上是关于WPF 中的 StackPanel 和 DockPanel 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

WPF:如何使控件在 StackPanel 中拉伸?

wpf 怎么获取StackPanel 中控件的位置。

如何使 DockPanel 中的项目扩展以适应 WPF 中的所有可用空间?

WPF StackPanel 垂直框架全高

WPF Grid与Stackpanel

网格和stackpanel之间的WPF组合