Compartilhar via


UIElement.CacheMode Propriedade

Definição

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.

Aplica-se a

Confira também