UIElement.CacheMode Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém ou define um valor que indica que o conteúdo renderizado deve ser armazenado em cache como um bitmap composto quando possível.
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 da propriedade
Um valor que indica que o conteúdo renderizado deve ser armazenado em cache como um bitmap composto quando possível. Se você especificar um valor de CacheMode, as operações de renderização de RenderTransform e Opacity serão executadas na GPU (unidade de processamento gráfico), se disponível. O padrão é nulo, que não habilita um modo de composição armazenado em cache.
Comentários
Defina esse valor para habilitar o comportamento de cache que descarrega bitmaps RenderTransform e Opacity para a GPU (unidade de processamento gráfico). Caso contrário, deixe-o como nulo.
Para XAML, o literal de cadeia de caracteres "BitmapCache" é o único valor habilitado que você pode usar para definir CacheMode como um atributo.
Observação
BitmapCache é a única classe derivada prática existente na API Windows Runtime que habilita esse comportamento (o tipo CacheMode é um tipo intermediário que existe apenas por motivos de infraestrutura e herdados).
Se estiver definindo CacheMode no código, defina-o como um novo valor de BitmapCache, da seguinte maneira:
<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();
Geralmente, não aplique valores CacheMode a elementos sem teste e criação de perfil primeiro. O cache para a GPU (unidade de processamento gráfico) destina-se apenas a uma minoria de possíveis situações de renderização para um aplicativo, e espera-se que você crie um perfil de várias combinações de quando e onde na interface do usuário aplicar uma configuração cacheMode. O uso excessivo do CacheMode pode prejudicar o desempenho em vez de ajudá-lo. É melhor criar o perfil da área da superfície do aplicativo para determinar quais áreas de destino são mais caras de renderizar e experimentar o cache apenas de determinados elementos com base nesses resultados. Para obter mais informações sobre como criar um perfil para renderização, consulte a seção IsOverdrawHeatMapEnabled e "Conteúdo estático do cache" do tópico Otimizar sua marcação XAML .
Evite usar o CacheMode e animações com storyboard juntas. Armazenar em cache o conteúdo em que Opacidade ou RenderTransform são animados faz com que as animações se tornem animações dependentes, mesmo que a animação seja de duração zero. Para ver essas animações serem executadas, você teria que definir EnableDependentAnimation como true, e uma animação dependente geralmente invalida todos os ganhos de desempenho que você pode obter com o cache da composição. A opacidade geralmente é animada por estados visuais em modelos de controle, portanto, essa é uma consideração, mesmo que você não esteja declarando nenhuma de suas próprias animações com storyboard em páginas XAML.