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 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.

Note

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 anziché aiutarlo. È consigliabile profilare l'area di attacco dell'app per determinare quali aree di destinazione sono più costose eseguire il rendering e provare a memorizzare nella cache solo determinati elementi in base a tali risultati. Per altre info su come profilare per 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 Opacity o RenderTransform viene animata fa sì che le animazioni diventino animazioni dipendenti, anche se l'animazione è di durata zero. Per vedere anche le animazioni eseguite devi impostare su EnableDependentAnimationtruee un'animazione dipendente in genere invalida tutti i miglioramenti delle prestazioni che potresti ottenere dalla memorizzazione nella cache della composizione. L'opacità viene spesso animata dagli stati di visualizzazione nei modelli di controllo, quindi questa è una considerazione anche se non dichiari alcuna delle tue animazioni con storyboard nelle pagine XAML.

Si applica a

Vedi anche