WPF虚拟化画布

问题描述 投票:7回答:1

我们在Canvas中生成了一系列矩形,它们按照以下顺序嵌套ScrollView> Canvas> VirtualizingStackPanel> XAML中的矩形。

关于在什么情况下支持虚拟化的情况,似乎没有关于微软的信息,并且在没有引发错误的情况下,它仅仅将其视为标准StackPanel。

鉴于我们的视图在整个画布上总共大约800个屏幕上的任何时间都有大约60个矩形,大约5分钟的加载时间是不可接受的慢。

我们已经尝试删除ScrollView没有效果(除了删除性能没有提高的滚动条),并删除一些其他嵌套元素,净效果似乎没有显示,或显示但仍然慢。

到目前为止,我发现了一个免费软件代码VirtualizedCanvas的最佳解决方案,但它非常有限并且不支持嵌套在其中的任何内容,实际上它所采用的唯一输入是UI元素的集合。

这个解决方案基本上忽略了数据绑定,并且需要您将完成的Canvas传递给它,这使得我们现有的所有代码和转换器都变得毫无用处,并且将是实现的主要返工。

有没有办法简单地剪辑虚拟化画布只绘制我们的60个屏幕项目?

wpf canvas virtualization
1个回答
5
投票

我在这里问了一个类似的问题:Resources and guides to UI virtualization in WPF

© www.soinside.com 2019 - 2024. All rights reserved.