[英]BitmapCache poor performance while resizing
我有一个ListView
其中包含不同的复杂ListViewItem
容器,包括图像、阴影效果、模糊效果等。大量渲染这些容器会严重降低性能,尤其是因为我在ListView
顶部使用了模糊覆盖框架。 这就是为什么在这种情况下我将CacheMode
设置为BitmapCache
(将性能提高高达 15 倍的 fps)。
<Border.CacheMode>
<BitmapCache />
</Border.CacheMode>
问题是我使用WrapPanel
和ValueConverter
来动态调整这些容器的大小并将其放入WrapPanel
以便它们完全填充水平或平铺视图中的空间。 显然,这不适用于缓存,并且会产生严重的滞后/停顿(帧下降到 0)。
目前我的 3 个选项是:
我的问题:
好的。 经过大量的阅读和实验,我想到了两件事:
首先, Caching
不应该用于经常调整大小的元素,特别是如果它们太多(找不到原因)。 所以,我基本上缓存了固定大小的子元素。
这让我想起了Virtualization
,这正是我所缺少的,但不知道WPF Lists
支持。
通过更多优化,现在我可以平滑地调整窗口的大小。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.