【问题标题】:ListView - Scrollbar height keeps changing as I scrollListView - 滚动条高度随着我滚动而不断变化
【发布时间】:2011-12-21 19:22:09
【问题描述】:

我有一个使用 ListViewItems 显式填充(无绑定)的 ListView。 大多数项目需要可见,其他项目应保持折叠状态。所有项目的高度相同。

问题是如果我有 100 个项目并且前 60 个可见并且底部 40 处于折叠状态,则滚动条的高度变为基于假设所有 100 个项目都处于可见状态并且滚动条的高度变为的东西低于应有的水平。但是当我向下滚动到 60 时,它意识到其余 40 处于折叠状态,因此增加了滚动条的高度以使其适合列表视图中的 60 项。

我最初认为这可能是因为虚拟化。但是我没有将任何数据绑定到列表视图。我还尝试将需要处于折叠状态的项目的高度设置为 0,但这并没有给我想要的结果。

我需要的是,如果有 60 个项目可见且 40 个已折叠,则滚动条的高度应仅基于列表视图中的 60 个项目,并且应保持不变。 有没有可能实现?

【问题讨论】:

    标签: wpf listview scrollbar


    【解决方案1】:

    我遇到了完全相同的问题,可以在这里找到答案:Listbox scrollbar thumb changes size when content is variable height

    很快,在 ListBox 上添加ScrollViewer.CanContentScroll="False",滚动条的高度将保持不变,无论折叠项的数量如何。

    顺便说一句,我知道这个问题已经有将近 2 年的历史了,但是我想留下它以供将来参考。

    【讨论】:

      【解决方案2】:

      我不确定是什么让您决定这不是虚拟化,因为它必须是这样。尝试关闭虚拟化:

      <ListView VirtualizingStackPanel.IsVirtualizing="False"  ...
      

      【讨论】:

      猜你喜欢
      • 2015-02-16
      • 1970-01-01
      • 1970-01-01
      • 2012-06-14
      • 2011-09-27
      • 1970-01-01
      • 1970-01-01
      • 2021-11-28
      • 1970-01-01
      相关资源
      最近更新 更多