UIElement.CacheMode 속성

정의

가능한 경우 렌더링된 콘텐츠를 복합 비트맵으로 캐시해야 했음을 나타내는 값을 가져오거나 설정합니다.

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 값을 지정하는 경우 RenderTransformOpacity의 렌더링 작업은 사용 가능한 경우 GPU(그래픽 처리 장치)에서 실행됩니다. 기본값은 null이며 캐시된 컴퍼지션 모드를 사용하도록 설정하지 않습니다.

설명

RenderTransformOpacity 비트맵을 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인 경우에도 애니메이션이 종속 애니메이션이 됩니다. 이러한 애니메이션이 실행되는 것을 보려면 EnableDependentAnimationtrue로 설정해야 하며 종속 애니메이션은 일반적으로 컴퍼지션 캐싱에서 얻을 수 있는 모든 성능 향상을 무효화합니다. 불투명도 는 컨트롤 템플릿의 시각적 상태에 의해 애니메이션되는 경우가 많으므로 XAML 페이지에서 스토리보드 애니메이션을 선언하지 않더라도 고려 사항입니다.

적용 대상

추가 정보