ScrollViewer的水平ScrollBar将固定高度的内容向上推

ibr*_*rir 1 wpf xaml scrollviewer

我有一个包含两个自定义控件的两列网格布局。这两个控件共同构成一个表/数据网格。我将此表/数据网格拆分为两个块的原因是第二个控件(右侧的一个控件)在水平方向上可能很大,因此需要将其包装在ScrollViewer中。左侧的一个用作标题,并且应始终可见,不能滚动到视线之外。这两个部分的高度匹配。

如您所见,问题在于,scrollviewer的水平滚动条将第二部分向上推,而不是占用自己的空间。

在此处输入图片说明

请注意,由于表格的高度较小,因此不使用ScrollViewer的垂直滚动条。

这是它的外观:

在此处输入图片说明

到目前为止,我已经尝试过:

  • 我尝试向网格中添加一行(高度auto*高度),并使ScrollViewer跨过它,但无济于事。
  • 我已经将该行的高度设置为与滚动条的高度相匹配,但这种方法可行,但是我发现这种方法存在两个巨大的问题:
    1. 如果不需要滚动条(第二个控件在水平方向上不是很大),则该行将变成一无所用的空白空间,有点像页边距,在我看来,这是不希望的。
    2. 这是不可靠的,因为它依赖于滚动条的硬编码大小,我们知道滚动条的大小可以随环境和主题而变化。

Nei*_*l B 5

为此,您只需要一个数据网格。

只需设置HorizontalScrollBarVisibility="Auto"FrozenColumnCount="1"

在此处输入图片说明