WPF 大小

WPF 容器尺寸行为总结

在 WPF 中,布局容器的尺寸来源可以分为三类:

  • 一类:尺寸主要取决于 父容器的约束 → “父大则大,父小则小”
  • 一类:尺寸主要取决于 子元素的大小 → “子大则大,子小则小”
  • 一类:尺寸基本固定,不跟随父或子变化

📌 常见容器的尺寸行为对比

容器 自己的设置 父容器约束 子容器 撑大 窗口约束 对子影响
Grid 1 ✅ self 2 ✅随父 ❌不随子 3✅ ✅默认拉伸子
border 1✅ self 2 ✅随父 ❌不随子 3✅ ✅默认拉伸子
Canvas 1✅ self 2 ✅随父 ❌不随子 3✅ ❌不拉
StackPanel 1✅ self 2 ✅随父 3✅撑大是在4和3中选择一个大的 4✅ ❌不拉
DockPanel 1✅ self 2✅ 尺寸填满父容器 ❌高不随子✅宽随子 3✅ ❌✅不拉但是最后一个填充会默认拉
WrapPanel 1✅self 2✅ 随父 ❌不随子 3✅ ❌不拉
----- ----------- ------------ ----------- ------- --------

常见坑点 StackPanel + ScrollViewer ⚠️ ScrollViewer 失效,因为 StackPanel 无限测量子元素 ⚠️ 建议用 Grid 替代

常见坑点 不拉伸子,,子的大小就不会默认继承自父,那么没内容时就会为0

常见坑点 stacpanel、WrapPanel、DockPanpen的子元素均不会默认叠加在一起 grid 会border 只有一个内容

posted @ 2025-09-17 10:11  stweily  阅读(7)  评论(0)    收藏  举报