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 の場合、CacheMode を属性として設定するために使用できる有効な値は、文字列リテラル "BitmapCache" だけです。
注意
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 ページで独自のストーリーボードアニメーションを宣言していない場合でも、これは考慮事項です。