什么是WP7中的BitmapCache?

时间:2012-12-19 11:55:57

标签: windows-phone-7 listbox bitmapcache

我已阅读this thread,但我不知道BitmapCache的作用。

根据msdn

  

位图缓存允许将可视元素存储为后跟位图   第一个渲染过程。缓存元素后,应用程序   绕过缓存的可视元素的渲染阶段并显示   而是存储的位图。

我为CacheMode="BitmapCache"设置了ListBox。我认为在第一次渲染之后,操作系统会将其视觉保存为位图,然后继续在每个帧中显示该位图,而不再渲染它。我认为ListBox现在应该是静态的。但我仍然可以滚动Listbox

我必须明白这是错的。请解释一下BitmapCache的作用?

如果它很好,为什么我们不为每个元素设置BitmapCache

1 个答案:

答案 0 :(得分:2)

  

我认为ListBox现在应该是静态的。但我仍然可以滚动列表框。

滚动列表框时,它会重绘其内容,从而更新缓存的表示。位图缓存对于某些转换很有用,例如转换。在这些情况下,缓存的表示有许多优点:

  1. 控件不必重绘其内容=> CPU经济
  2. 由于视觉表示不再依赖于控件,因此可以直接由GPU处理
  3.   

    如果它很好,为什么我们不为每个元素设置BitmapCache?

    BitmapCache使用更多的内存,似乎有一些极端的情况,它实际上可能会产生负面的性能影响(尽管我对这个主题的知识不足以枚举它们)。了解BitmapCache是​​否应该打开的好方法是将EnableRedrawRegions设置为true。然后,模拟器将显示重绘的区域,并且可以相应地设置BitmapCache。