2012-12-19 1 views
2

나는 이미 this thread을 읽었지만, 나는 BitmapCache이 무엇인지 파악하지 못했다. msdn 따르면 WP7에서 BitmapCache 란 무엇입니까?

,

맵 캐싱 시각적 요소 제 렌더링 통과 후의 비트 맵으로 저장 될 수있다. 요소가 캐시되면 응용 프로그램 은 캐시 된 시각 요소의 렌더링 단계를 건너 뛰고 대신 저장된 비트 맵 을 표시합니다.

ListBox에 대해 CacheMode="BitmapCache"을 설정했습니다. 제 1 렌더링 후에 OS는 비주얼을 비트 맵으로 저장하고, 다시 렌더링하지 않고 각 프레임의 비트 맵을 계속 보여줄 것이라고 생각합니다. 나는 ListBox가 지금 정적이어야한다고 생각합니다. 하지만 여전히 Listbox을 스크롤 할 수 있습니다.

나는 그것을 잘못 이해해야합니다. BitmapCache은 무엇을 설명합니까?

좋으면 왜 모든 요소에 BitmapCache을 설정해야 하지요?

답변

2

이제 ListBox가 정적이어야한다고 생각합니다. 하지만 여전히 목록 상자를 스크롤 할 수 있습니다.

목록 상자를 스크롤하면 내용이 다시 그려지고 캐시 된 표현이 업데이트됩니다. 비트 맵 캐시는 변환과 같은 일부 변환에 유용합니다.

  1. 시각적 표현이 더 이상 통제에 의존하지 않기 때문에 컨트롤이 내용 => CPU 경제를
  2. 을 다시 그릴 필요가 없습니다, 그것은 할 수있다 : 이러한 경우, 캐시 된 표현은 많은 장점을 가지고 GPU를

이 좋다면 직접 처리, 우리는 모든 요소에 대한 BitmapCache를 설정하지 않은 이유는 무엇입니까?

BitmapCache는 더 많은 메모리를 사용하며 실제 성능에 부정적인 영향을 미칠 수있는 구석이있는 것 같습니다. (열거 할만큼 충분히 지식이 없지만). BitmapCache가 켜져 있는지 확인하는 좋은 방법은 EnableRedrawRegions 설정을 true로 설정하는 것입니다. 그러면 에뮬레이터에서 다시 그려지는 영역을 표시하고 이에 따라 BitmapCache를 설정할 수 있습니다.