UIElement.CacheMode Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene o imposta un valore che indica che il contenuto sottoposto a rendering deve essere memorizzato nella cache come bitmap composita, quando possibile.
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" />
Valore della proprietà
Valore che indica che il contenuto sottoposto a rendering deve essere memorizzato nella cache come bitmap composita, quando possibile. Se si specifica un valore di CacheMode, le operazioni di rendering di RenderTransform e Opacity vengono eseguite nell'unità di elaborazione grafica (GPU), se disponibile. Il valore predefinito è null
, che non abilita una modalità di composizione memorizzata nella cache.
Commenti
Impostare questo valore per abilitare il comportamento di memorizzazione nella cache che offload le bitmap RenderTransform e Opacity nell'unità di elaborazione grafica (GPU). In caso contrario, lasciarlo come null
.
Per XAML, il valore letterale stringa "BitmapCache" è l'unico valore abilitato che puoi usare per impostare CacheMode
come attributo.
Nota
BitmapCache è l'unica classe derivata pratica esistente nell'API Windows Runtime che abilita questo comportamento (il tipo CacheMode è un tipo intermedio esistente solo per motivi di infrastruttura e legacy).
Se si imposta CacheMode
nel codice, impostarlo su un nuovo valore di BitmapCache, come illustrato di seguito:
<Canvas x:Name="canvas1"/>
canvas1.CacheMode = new BitmapCache();
#include <winrt/Windows.UI.Xaml.Media.h>
...
canvas1().CacheMode(Windows::UI::Xaml::Media::BitmapCache{});
In genere non applicare CacheMode
valori agli elementi senza prima eseguire test e profilatura. La memorizzazione nella cache nell'unità di elaborazione grafica (GPU) è destinata solo a una minoranza di possibili situazioni di rendering per un'app ed è previsto che si profileranno varie combinazioni di quando e dove nell'interfaccia utente applicare un'impostazione CacheMode
. L'uso eccessivo di CacheMode
può danneggiare le prestazioni piuttosto che aiutarlo. È consigliabile profilare l'area di attacco dell'app per determinare quali aree di destinazione sono più costose da eseguire per il rendering e sperimentare la memorizzazione nella cache solo di determinati elementi in base a tali risultati. Per altre info su come profilare il rendering, vedi la sezione "Memorizzare nella cache il contenuto statico" dell'argomento Ottimizzare il markup XAML .
Evitare di usare Insieme le animazioni CacheMode e storyboard. La memorizzazione nella cache del contenuto in cui opacità o RenderTransform viene animata fa sì che le animazioni diventino animazioni dipendenti, anche se l'animazione è di durata zero. Per vedere anche che le animazioni vengono eseguite, devi impostare su EnableDependentAnimation
true
e un'animazione dipendente in genere invalida tutti i miglioramenti delle prestazioni che potresti ottenere dalla memorizzazione nella cache della composizione.
L'opacità è spesso animata dagli stati di visualizzazione nei modelli di controllo, quindi si tratta di una considerazione anche se non dichiari alcuna delle tue animazioni con storyboard nelle pagine XAML.