ListView - 当我滚动时,滚动条高度不断变化

时间:2011-11-04 07:25:03

标签: wpf listview scrollbar

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

问题是,如果我有100个项目,前60个是可见的,而后40个是处于折叠状态,则滚动条的高度会基于所有100个项目都处于可见状态并且滚动条的高度变为比它应该的少。但是当我向下滚动到60时,它意识到其余的40处于折叠状态,因此增加了滚动条的高度,使其适合列表视图中的60个项目。

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

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

2 个答案:

答案 0 :(得分:4)

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

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

顺便说一下,我知道这个问题已经差不多2年了,不过我想把它留待将来参考。

答案 1 :(得分:2)

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

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