在设置CanContentScroll =“false”时是否有解决方法来虚拟化ItemsControl列表?

时间:2012-03-05 20:45:42

标签: wpf xaml scrollviewer ui-virtualization

正如我在Virtualizing an ItemsControl?中所学到的,我需要设置

ScrollViewer.CanContentScroll = "true"

能够虚拟化ItemsControl中的列表。然而,这会导致许多滚动问题,包括但不限于颠簸滚动和我的扩展子项的一部分在窗口底部被切断。我已经广泛搜索了这一点,似乎很多人都遇到了这个问题。然而,我还没有遇到任何变通方法。

有没有人可以解决这个问题?

3 个答案:

答案 0 :(得分:2)

没有简单或简单的解决方法;开箱即用的VirtualizingStackPanel就是这样,可能有些限制。大多数解决方案都需要编写自定义虚拟化面板或虚拟化数据提供程序。此博客文章可以帮助您找到适合您的解决方案:

http://bea.stollnitz.com/blog/?p=344

答案 1 :(得分:0)

也许你可以保持CanContentScroll = true并使用其他技术阻止滚动。

答案 2 :(得分:0)

您可以使用<ListView VirtualizingStackPanel.IsVirtualizing="False">在列表视图中禁用堆栈面板的虚拟化。在这种情况下可能存在无法启用虚拟化的限制,但您可以尝试手动启用它并查看它是否有效。