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 ビットマップと 不透明度 ビットマップをグラフィックス処理装置 (GPU) にオフロードするキャッシュ動作を有効にします。 それ以外の場合は、 nullのままにします。
XAML の場合、文字列リテラル "BitmapCache" は、属性として CacheMode 設定するために使用できる唯一の有効な値です。
Note
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 継続時間であっても、アニメーションは依存アニメーションになります。 これらのアニメーションを実行するには、 EnableDependentAnimation を trueに設定する必要があります。依存アニメーションを使用すると、通常、コンポジションのキャッシュによって得られるパフォーマンスの向上がすべて無効になります。
不透明度 は多くの場合、コントロール テンプレートの表示状態によってアニメーション化されるため、XAML ページで独自のストーリーボード付きアニメーションを宣言していない場合でも、これは考慮に入ります。