我已阅读this thread,但我不知道BitmapCache
的作用。
根据msdn,
位图缓存允许将可视元素存储为后跟位图 第一个渲染过程。缓存元素后,应用程序 绕过缓存的可视元素的渲染阶段并显示 而是存储的位图。
我为CacheMode="BitmapCache"
设置了ListBox
。我认为在第一次渲染之后,操作系统会将其视觉保存为位图,然后继续在每个帧中显示该位图,而不再渲染它。我认为ListBox
现在应该是静态的。但我仍然可以滚动Listbox
。
我必须明白这是错的。请解释一下BitmapCache
的作用?
如果它很好,为什么我们不为每个元素设置BitmapCache
?
答案 0 :(得分:2)
我认为ListBox现在应该是静态的。但我仍然可以滚动列表框。
滚动列表框时,它会重绘其内容,从而更新缓存的表示。位图缓存对于某些转换很有用,例如转换。在这些情况下,缓存的表示有许多优点:
如果它很好,为什么我们不为每个元素设置BitmapCache?
BitmapCache使用更多的内存,似乎有一些极端的情况,它实际上可能会产生负面的性能影响(尽管我对这个主题的知识不足以枚举它们)。了解BitmapCache是否应该打开的好方法是将EnableRedrawRegions
设置为true。然后,模拟器将显示重绘的区域,并且可以相应地设置BitmapCache。