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{});
通常、最初にテストとプロファイリングを行わずに要素に値を適用 CacheMode
しないでください。 グラフィックス処理装置 (GPU) へのキャッシュは、アプリで発生する可能性のあるレンダリング状況の少数派のみを対象としており、UI で設定を適用 CacheMode
するタイミングと場所のさまざまな組み合わせをプロファイリングすることが期待されます。 の CacheMode
過剰使用は、役に立つよりもパフォーマンスを損なう可能性があります。 アプリの領域をプロファイリングして、レンダリングに最もコストのかかる対象領域を特定し、それらの結果に基づいて特定の要素のみをキャッシュすることを試すのが最善です。 レンダリング用にプロファイリングする方法の詳細については、「 XAML マークアップを最適化 する」トピックの「静的コンテンツをキャッシュする」セクションを参照してください。
CacheMode とストーリーボード付きアニメーションを一緒に使用しないでください。
Opacity または RenderTransform がアニメーション化されているコンテンツをキャッシュすると、アニメーションが 0 の期間であっても、アニメーションは依存アニメーションになります。 これらのアニメーションを実行するには、 を にtrue
設定EnableDependentAnimation
する必要があります。依存アニメーションを使用すると、通常、コンポジションのキャッシュによって得られる可能性のあるすべてのパフォーマンスの向上が無効になります。
不透明度 は多くの場合、コントロール テンプレートの視覚的な状態によってアニメーション化されるため、XAML ページで独自のストーリーボードアニメーションを宣言していない場合でも、これは考慮事項です。