这是我的XAML:
这是结果:
这不是我期望的。我希望网格第0行占据垂直空间的25%,网格第1行占据60%的空间,网格第2行占据剩余的15%的空间。我以为我的RowDefinition
元素总共做到了100%。我在做什么错了?
答案 0 :(得分:3)
具有垂直方向的StackPanel可以为子元素提供无限的垂直空间来定位自己。当为Grid提供无限的高度或宽度时,它会选择将*
视为Auto
(如果我正确理解Grid.MeasureOverride
implementation)并且不会拉伸。
以某种方式限制网格高度:设置固定高度,将Height绑定到某个值(例如,其他元素ActualHeight),使用大小有限的其他父容器
答案 1 :(得分:2)
删除/删除外部堆栈面板,这将完成您想要的。
此外,如果您希望将边距放到网格上。
答案 2 :(得分:0)
删除外部StackPanel
会有所帮助。
Grid
有几种意外行为。就您而言,这是double.PositiveInfinity
小节长度的意外行为。
我在此处发布了意外的行为:The undefined behaviors of WPF Grid (the so-called bugs)。我在Avalonia中写了一篇新文章。