我有一个包含图像、阴影效果、模糊效果等的ListView
不同复杂容器。大量渲染这些容器会严重降低性能,特别是因为我在. 这就是为什么在这种情况下我设置为(将性能提高 15 倍 fps)。ListViewItem
ListView
CacheMode
BitmapCache
<Border.CacheMode>
<BitmapCache />
</Border.CacheMode>
问题是我使用 aWrapPanel
和 aValueConverter
来动态调整这些容器的大小并将它们放入其中,WrapPanel
以便它们完全填充水平或平铺视图中的空间。显然,这不适用于缓存,并且会产生严重的滞后/停顿(帧下降到 0)。
目前我的3个选项是:
- 禁用缓存(并以几乎 15fps 的速度运行)
- 禁用调整大小(看起来不可接受)
- 仅在调整窗口大小时禁用缓存和调整大小(仍然表现不佳,但这是我拥有的最佳选择)
我的问题:
- 为什么在使用缓存与不使用缓存的情况下调整大小时性能会大幅下降?
- 我是在滥用缓存还是做错了?
- 有没有更好的方法来解决这个烂摊子而不妥协?