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 é null
, 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 como null
.
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 permite esse comportamento (o tipo CacheMode é um tipo intermediário que existe apenas por motivos de infraestrutura e herdados).
Se estiver configurando CacheMode
no código, defina-o como um novo valor de BitmapCache, desta forma:
<Canvas x:Name="canvas1"/>
canvas1.CacheMode = new BitmapCache();
#include <winrt/Windows.UI.Xaml.Media.h>
...
canvas1().CacheMode(Windows::UI::Xaml::Media::BitmapCache{});
Geralmente, não aplique CacheMode
valores a elementos sem testar e criar 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 o perfil de várias combinações de quando e onde na interface do usuário aplicar uma CacheMode
configuração. O uso excessivo de pode prejudicar o desempenho em vez de CacheMode
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 o perfil para renderização, consulte a seção "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
true
como e uma animação dependente geralmente invalida todos os ganhos de desempenho obtidos 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.