UIElement.CacheMode Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft einen Wert ab, der angibt, dass gerenderte Inhalte nach Möglichkeit als zusammengesetzte Bitmap zwischengespeichert werden sollen, 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 gerenderte Inhalte nach Möglichkeit als zusammengesetzte Bitmap zwischengespeichert werden sollen. Wenn Sie einen Wert für CacheMode angeben, werden Rendervorgänge aus RenderTransform und Opacity auf der Grafikverarbeitungseinheit (GPU) ausgeführt, sofern verfügbar. Der Standardwert ist , wodurch kein zwischengespeicherter Kompositionsmodus aktiviert wird null
.
Hinweise
Legen Sie diesen Wert fest, um das Zwischenspeicherungsverhalten zu aktivieren, das RenderTransform - und Deckkraft-Bitmaps an die Grafikverarbeitungseinheit (GPU) auslädt. Behalten Sie andernfalls den Wert bei null
.
Für XAML ist das Zeichenfolgenliteral "BitmapCache" der einzige aktivierte Wert, den Sie zum Festlegen CacheMode
als Attribut verwenden können.
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 im Code festlegen CacheMode
, legen Sie ihn wie folgt auf einen neuen Wert von BitmapCache fest:
<Canvas x:Name="canvas1"/>
canvas1.CacheMode = new BitmapCache();
#include <winrt/Windows.UI.Xaml.Media.h>
...
canvas1().CacheMode(Windows::UI::Xaml::Media::BitmapCache{});
Wenden CacheMode
Sie Im Allgemeinen keine Werte auf Elemente an, ohne zuerst zu testen und profilieren. Das Zwischenspeichern an die Grafikverarbeitungseinheit (Graphics Processing Unit, GPU) ist nur für eine Minderheit möglicher Renderingsituationen für eine App vorgesehen. Es wird erwartet, dass Sie verschiedene Kombinationen von Wann und Wo auf Ihrer Benutzeroberfläche erstellen, um eine CacheMode
Einstellung anzuwenden. Übernutzung von CacheMode
kann die Leistung beeinträchtigen, anstatt ihr zu helfen. Es empfiehlt sich, ein Profil für die App-Oberfläche zu erstellen, um zu ermitteln, welche Zielbereiche am teuersten zu rendern sind, und mit dem Zwischenspeichern nur bestimmter Elemente basierend auf diesen Ergebnissen zu experimentieren. Weitere Informationen zum Erstellen eines Profils für das Rendern finden Sie im Abschnitt "Zwischenspeichern von statischen Inhalten" des Themas Optimieren ihres XAML-Markups .
Vermeiden Sie die gemeinsame Verwendung von CacheMode und Storyboardanimationen. Das Zwischenspeichern von Inhalten, bei denen Opacity oder RenderTransform animiert sind, führt dazu, dass die Animationen abhängig werden, auch wenn die Animation 00 Dauer hat. Damit diese Animationen auch nur ausgeführt werden können, müssen Sie auf true
festlegenEnableDependentAnimation
, und eine abhängige Animation ungültig macht in der Regel alle Leistungsgewinne ungültig, die sie durch das Zwischenspeichern der Komposition erzielen können.
Die Deckkraft wird häufig durch visuelle Zustände in Steuerelementvorlagen animiert, daher ist dies eine Überlegung, auch wenn Sie keine ihrer eigenen Storyboardanimationen auf XAML-Seiten deklarieren.