次の方法で共有


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。キャッシュコンポジション モードは有効になりません。

注釈

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 ページで独自のストーリーボードアニメーションを宣言していない場合でも、これは考慮事項です。

適用対象

こちらもご覧ください