我有一个ListView
,其中包含由图像,阴影效果,模糊效果等组成的不同复杂ListViewItem
容器。大量渲染这些容器会大大降低性能,尤其是因为我使用的是ListView
顶部的模糊叠加框。这就是为什么在这种情况下,我将CacheMode
设置为BitmapCache
(将性能提高了15 fps)。
<Border.CacheMode>
<BitmapCache />
</Border.CacheMode>
问题是我使用WrapPanel
和ValueConverter
来动态调整这些容器的大小并将它们放到WrapPanel
中,以便它们完全填充水平或平铺视图中的空间。显然,这不适用于缓存,并且会产生严重的滞后/死机(帧降至0)。
目前我的3个选择是:
我的问题:
答案 0 :(得分:0)
好的。经过大量的阅读和实验,我发现了两件事:
首先,Caching
不应用于经常调整大小的元素,尤其是如果元素太多(无法找出原因)。因此,我基本上是缓存固定大小的子元素。
这使我想起Virtualization
,这正是我所缺少的,但不知道WPF Lists
是否支持。
现在,通过更多优化,我可以重新调整窗口黄油的大小。