Condividi tramite


UIElement.CacheMode Proprietà

Definizione

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 da 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 offloads RenderTransform e bitmap Opacity all'unità di elaborazione grafica (GPU). In caso contrario, lasciarlo come Null.

Per XAML, il valore letterale stringa "BitmapCache" è l'unico valore abilitato che è possibile usare per impostare CacheMode come attributo.

Nota

BitmapCache è l'unica classe pratica pratica esistente nell'API Windows Runtime che abilita questo comportamento (il tipo CacheMode è un tipo intermedio che esiste 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{});
canvas1->CacheMode = ref new BitmapCache();

Non applicare in genere i valori CacheMode agli elementi senza testare e profilare prima. La memorizzazione nella cache nell'unità di elaborazione grafica (GPU) è destinata solo a una minoranza di possibili situazioni di rendering per un'app e si prevede di profilare varie combinazioni di quando e dove nell'interfaccia utente applicare un'impostazione CacheMode. L'uso eccessivo di CacheMode può danneggiare le prestazioni anziché aiutarlo. È consigliabile profilare l'area di superficie dell'app per determinare quali aree di destinazione sono più costose per il rendering e per sperimentare la memorizzazione nella cache solo di determinati elementi in base ai risultati. Per altre informazioni su come profilare il rendering, vedere La sezione IsOverdrawHeatMapEnabled e "Cache static content" dell'argomento Ottimizza il markup XAML .

Evitare di usare le animazioni cacheMode e storyboard insieme. La memorizzazione nella cache del contenuto in cui opacità o RenderTransform è animata, le animazioni diventano animazioni dipendenti, anche se l'animazione è zero-duration. Per visualizzare anche tali animazioni eseguite, è necessario impostare EnableDependentAnimation su true e un'animazione dipendente in genere invalida tutti i miglioramenti delle prestazioni che si potrebbero ottenere dalla memorizzazione nella cache della composizione. L'opacità spesso è animata dagli stati visivi nei modelli di controllo, quindi si tratta di una considerazione anche se non si dichiara alcuna delle animazioni storyboard personalizzate nelle pagine XAML.

Si applica a

Vedi anche