Compartir a través de


UIElement.CacheMode Propiedad

Definición

Obtiene o establece un valor que indica que el contenido representado debe almacenarse en caché como un mapa de bits compuesto cuando sea posible.

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

Valor de propiedad

Valor que indica que el contenido representado debe almacenarse en caché como un mapa de bits compuesto cuando sea posible. Si especifica un valor de CacheMode, las operaciones de representación de RenderTransform y Opacity se ejecutan en la unidad de procesamiento de gráficos (GPU), si está disponible. El valor predeterminado es NULL, que no habilita un modo de composición almacenado en caché.

Comentarios

Establezca este valor para habilitar el comportamiento de almacenamiento en caché que descarga los mapas de bits RenderTransform y Opacity en la unidad de procesamiento gráfico (GPU). De lo contrario, déjelo como NULL.

Para XAML, el literal de cadena "BitmapCache" es el único valor habilitado que puedes usar para establecer CacheMode como atributo.

Nota:

BitmapCache es la única clase derivada práctica existente en la API de Windows Runtime que habilita este comportamiento (el tipo CacheMode es un tipo intermedio que solo existe por motivos de infraestructura y heredado).

Si establece CacheMode en el código, establézcalo en un nuevo valor de BitmapCache, de la siguiente manera:

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

Por lo general, no aplique valores CacheMode a elementos sin probar y generar perfiles primero. El almacenamiento en caché en la unidad de procesamiento gráfico (GPU) solo está pensado para una minoría de posibles situaciones de representación para una aplicación y se espera que se generarán perfiles de varias combinaciones de cuándo y dónde en la interfaz de usuario se aplicará una configuración CacheMode. El uso excesivo de CacheMode puede dañar el rendimiento en lugar de ayudarle. Es mejor generar perfiles del área expuesta de la aplicación para determinar qué áreas de destino son más caras de representar y experimentar con el almacenamiento en caché solo determinados elementos en función de esos resultados. Para obtener más información sobre cómo generar perfiles para la representación, consulta la sección IsOverdrawHeatMapEnabled y "Almacenar en caché contenido estático" del tema Optimizar el marcado XAML .

Evite usar CacheMode y animaciones con guion gráfico juntos. El almacenamiento en caché de contenido donde Opacity o RenderTransform se animan hace que las animaciones se conviertan en animaciones dependientes, incluso si la animación es de duración cero. Incluso para ver que esas animaciones se ejecutan tendrías que establecer EnableDependentAnimation en true, y una animación dependiente normalmente invalida todas las ganancias de rendimiento que podrías obtener al almacenar en caché la composición. La opacidad a menudo está animada por estados visuales en plantillas de control, por lo que se trata de una consideración incluso si no declaras ninguna de tus propias animaciones con guion gráfico en páginas XAML.

Se aplica a

Consulte también