UIElement.CacheMode Eigenschaft

Definition

Ruft einen Wert ab, der angibt, dass gerenderter Inhalt nach Möglichkeit als zusammengesetzte Bitmap zwischengespeichert werden soll, oder legt diesen fest.

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" />

Eigenschaftswert

Ein -Wert, der angibt, dass gerenderter Inhalt nach Möglichkeit als zusammengesetzte Bitmap zwischengespeichert werden soll. Wenn Sie den Wert CacheMode angeben, werden Renderingvorgänge aus RenderTransform und Opacity auf der Grafikverarbeitungseinheit (GPU) ausgeführt, sofern verfügbar. Der Standardwert ist NULL, wodurch kein zwischengespeicherter Kompositionsmodus aktiviert wird.

Hinweise

Legen Sie diesen Wert fest, um das Zwischenspeicherungsverhalten zu aktivieren, das RenderTransform - und Deckkraft-Bitmaps an die Grafikverarbeitungseinheit (Graphics Processing Unit, GPU) auslädt. Behalten Sie andernfalls null bei.

Für XAML ist das Zeichenfolgenliteral "BitmapCache" der einzige aktivierte Wert, den Sie verwenden können, um CacheMode als Attribut festzulegen.

Hinweis

BitmapCache ist die einzige vorhandene praktische abgeleitete Klasse in der Windows-Runtime-API, die dieses Verhalten ermöglicht (der CacheMode-Typ ist ein Zwischentyp, der nur aus Infrastruktur- und Legacygründen vorhanden ist).

Wenn Sie CacheMode im Code festlegen, legen Sie ihn wie folgt auf den neuen Wert BitmapCache fest:

<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();

Wenden Sie CacheMode-Werte im Allgemeinen nicht auf Elemente an, ohne zuerst zu testen und die Profilerstellung zu erstellen. Das Zwischenspeichern in der Grafikverarbeitungseinheit (Graphics Processing Unit, GPU) ist nur für eine Minderheit möglicher Renderingsituationen für eine App vorgesehen, und es wird erwartet, dass Sie verschiedene Kombinationen von wann und wo auf Ihrer Benutzeroberfläche erstellen, um eine CacheMode-Einstellung anzuwenden. Eine übermäßige Verwendung von CacheMode kann die Leistung beeinträchtigen, anstatt sie zu unterstützen. Es empfiehlt sich, ein Profil für die App-Oberfläche zu erstellen, um zu ermitteln, welche Zielbereiche am teuersten gerendert werden, und mit dem Zwischenspeichern nur bestimmter Elemente basierend auf diesen Ergebnissen zu experimentieren. Weitere Informationen zum Erstellen eines Profils für das Rendering finden Sie im Abschnitt IsOverdrawHeatMapEnabled und im Abschnitt "Statischen Inhalt zwischenspeichern" des Themas Optimieren des XAML-Markups .

Vermeiden Sie die gemeinsame Verwendung von CacheMode und Storyboardanimationen. Durch das Zwischenspeichern von Inhalten, bei denen Opacity oder RenderTransform animiert sind, werden die Animationen zu abhängigen Animationen, auch wenn die Animation keine Dauer hat. Damit diese Animationen überhaupt ausgeführt werden, müssen Sie EnableDependentAnimation auf true festlegen, und eine abhängige Animation macht in der Regel alle Leistungssteigerungen ungültig, die Sie durch das Zwischenspeichern der Komposition erzielen können. Deckkraft wird häufig durch visuelle Zustände in Steuerelementvorlagen animiert, sodass dies ein Aspekt ist, auch wenn Sie keine eigenen Storyboardanimationen auf XAML-Seiten deklarieren.

Gilt für:

Weitere Informationen