[英]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.