1

如何在 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"/>
4

1 回答 1

0

您可以为除第二个之外的所有 RowDefinitions 设置固定高度和最小高度,并在 ListView 周围放置一个滚动查看器。

编辑:好的,没有滚动查看器,ListView 可以自行滚动其内容。

于 2012-10-02T12:53:12.777 回答