如何在 WPF Grid 控件中使用自动行高,但将其限制在 Grid 不完全滚动的范围内?
这是我的用户界面:
- 第一行:自动高度,包含标签和文本输入(实际上还有更多这些行)
- 第2行:包含一个高度灵活的ListView,取决于项目的数量
- 第三行:自动高度,包含控制上面列表项的按钮
ListView 应该是自动调整大小的,因此它只占用与其项目行一样多的空间。添加一行时,ListView 的高度会增加。
ListView 下方的按钮应直接保留在 ListView 下方,中间没有可变间隙。ListView 和 Buttons 之间的空间应始终为 6 像素,以命名一个值。
随着更多项目添加到 ListView,按钮会随着 ListView 的高度向下移动。当窗口不够大而无法全部显示时,按钮必须在可用空间的最底部保持可见,并且 ListView 应该开始滚动其内容。
所以有了一个简短的列表,它就像这样: Grid 的所有行都是自动高度的,底部有很多空白空间。对于一个长列表,就像中间行是 1*-height,Grid 跨越整个窗口,按钮在底部可见,列表跨越剩余空间,自动滚动其内容。
我怎样才能做到这一点?
我找到了 RowDefinition.MaxHeight 属性,但它不接受 * 高度。否则我会尝试这样的事情:
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto" MaxHeight="*"/>
<RowDefinition Height="Auto"/>