UIElement.CacheMode 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
가능한 경우 렌더링된 콘텐츠를 복합 비트맵으로 캐시해야 했음을 나타내는 값을 가져오거나 설정합니다.
public:
property CacheMode ^ CacheMode { CacheMode ^ get(); void set(CacheMode ^ value); };
CacheMode CacheMode();
void CacheMode(CacheMode value);
public CacheMode CacheMode { get; set; }
var cacheMode = uIElement.cacheMode;
uIElement.cacheMode = cacheMode;
Public Property CacheMode As CacheMode
<uiElement CacheMode="BitmapCache" />
속성 값
렌더링된 콘텐츠가 가능한 경우 복합 비트맵으로 캐시되어야 했음을 나타내는 값입니다. CacheMode 값을 지정하는 경우 RenderTransform 및 Opacity의 렌더링 작업은 사용 가능한 경우 GPU(그래픽 처리 장치)에서 실행됩니다. 기본값은 null이며 캐시된 컴퍼지션 모드를 사용하도록 설정하지 않습니다.
설명
RenderTransform 및 Opacity 비트맵을 GPU(그래픽 처리 장치)로 오프로드하는 캐싱 동작을 사용하도록 설정하려면 이 값을 설정합니다. 그렇지 않으면 null로 둡니다.
XAML의 경우 문자열 리터럴 "BitmapCache"는 CacheMode를 특성으로 설정하는 데 사용할 수 있는 유일한 사용 값입니다.
참고
BitmapCache는 이 동작을 사용하도록 설정하는 Windows 런타임 API의 유일한 기존 실제 파생 클래스입니다(CacheMode 형식은 인프라 및 레거시 이유로만 존재하는 중간 형식임).
코드에서 CacheMode를 설정하는 경우 다음과 같이 BitmapCache의 새 값으로 설정합니다.
<Canvas x:Name="canvas1"/>
canvas1.CacheMode = new BitmapCache();
#include <winrt/Windows.UI.Xaml.Media.h>
...
canvas1().CacheMode(Windows::UI::Xaml::Media::BitmapCache{});
canvas1->CacheMode = ref new BitmapCache();
먼저 테스트 및 프로파일링하지 않고는 일반적으로 CacheMode 값을 요소에 적용하지 마세요. GPU(그래픽 처리 장치)에 대한 캐싱은 앱에 대해 가능한 렌더링 상황 중 소수에만 사용되며, UI에서 CacheMode 설정을 적용할 시기와 위치의 다양한 조합을 프로파일링해야 합니다. CacheMode를 과도하게 사용하면 성능이 저하될 수 있습니다. 앱 노출 영역을 프로파일링하여 렌더링하는 데 가장 비용이 많이 드는 대상 영역을 확인하고 해당 결과에 따라 특정 요소만 캐싱하는 것을 실험하는 것이 가장 좋습니다. 렌더링을 프로파일링하는 방법에 대한 자세한 내용은 XAML 태그 최적화 항목의 IsOverdrawHeatMapEnabled 및 "정적 콘텐츠 캐시" 섹션을 참조하세요.
CacheMode 및 스토리보드 애니메이션을 함께 사용하지 마세요. Opacity 또는 RenderTransform이 애니메이션된 콘텐츠를 캐싱하면 애니메이션이 기간이 0인 경우에도 애니메이션이 종속 애니메이션이 됩니다. 이러한 애니메이션이 실행되는 것을 보려면 EnableDependentAnimation 을 true로 설정해야 하며 종속 애니메이션은 일반적으로 컴퍼지션 캐싱에서 얻을 수 있는 모든 성능 향상을 무효화합니다. 불투명도 는 컨트롤 템플릿의 시각적 상태에 의해 애니메이션되는 경우가 많으므로 XAML 페이지에서 스토리보드 애니메이션을 선언하지 않더라도 고려 사항입니다.