다음을 통해 공유


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{});

일반적으로 먼저 테스트 및 프로파일링하지 않고 요소에 값을 적용 CacheMode 하지 마세요. GPU(그래픽 처리 장치)에 대한 캐싱은 앱에 대해 가능한 렌더링 상황의 소수만을 위한 것이며, UI에서 설정을 적용 CacheMode 할 시기와 위치의 다양한 조합을 프로파일링할 것으로 예상됩니다. 과용은 CacheMode 성능에 도움이 되지 않고 저하될 수 있습니다. 앱 노출 영역을 프로파일링하여 렌더링하는 데 가장 비용이 많이 드는 대상 영역을 확인하고 해당 결과에 따라 특정 요소만 캐싱하는 것을 실험하는 것이 가장 좋습니다. 렌더링을 프로파일링하는 방법에 대한 자세한 내용은 XAML 태그 최적화 항목의 "정적 콘텐츠 캐시" 섹션을 참조하세요.

CacheMode 및 스토리보드 애니메이션을 함께 사용하지 마세요. Opacity 또는 RenderTransform이 애니메이션으로 적용된 콘텐츠를 캐싱하면 애니메이션이 0 기간인 경우에도 애니메이션이 종속 애니메이션이 됩니다. 이러한 애니메이션이 실행되는 것을 보려면 로 설정 EnableDependentAnimationtrue해야 하며 종속 애니메이션은 일반적으로 컴퍼지션 캐싱에서 얻을 수 있는 모든 성능 향상을 무효화합니다. 불투명도 는 컨트롤 템플릿의 시각적 상태에 의해 애니메이션되는 경우가 많으므로 XAML 페이지에서 스토리보드 애니메이션을 선언하지 않더라도 고려 사항입니다.

적용 대상

추가 정보