BitmapCache Classe

Definição

Cria e armazena em cache uma representação de um UIElement.

public ref class BitmapCache sealed : System::Windows::Media::CacheMode
public sealed class BitmapCache : System.Windows.Media.CacheMode
type BitmapCache = class
    inherit CacheMode
Public NotInheritable Class BitmapCache
Inherits CacheMode
Herança

Exemplos

O XAML a seguir mostra como armazenar um Canvas elemento em cache. Para obter o exemplo de código completo, consulte Como melhorar o desempenho de renderização armazenando um elemento em cache.

<!-- //////////////////////////////////////////////////////////////// -->
<!-- // The following XAML creates a BitmapCache with default      // -->
<!-- // properties and assigns it as the CacheMode for the canvas. // -->
<!-- //////////////////////////////////////////////////////////////// -->
<Canvas.CacheMode>
    <BitmapCache EnableClearType="False" 
                 RenderAtScale="1" 
                 SnapsToDevicePixels="False"  />
</Canvas.CacheMode>

Comentários

Use a classe para melhorar o BitmapCache desempenho de renderização de um complexo UIElement. Crie um BitmapCache e atribua-o CacheMode à propriedade de um UIElement para armazenar em cache o elemento e sua subárvore como um bitmap na memória de vídeo. Isso é útil quando você precisa animar, traduzir ou dimensionar um o UIElement mais rápido possível. Essa abordagem permite uma compensação entre desempenho e qualidade visual enquanto o conteúdo é armazenado em cache.

Use a BitmapCacheBrush classe para reutilizar com eficiência um elemento armazenado em cache.

Defina a RenderAtScale propriedade para dimensionar o cache de bitmap. Isso será útil se um elemento for ampliado e você quiser que o elemento seja renderizado mais claramente do que seria se o cache fosse simplesmente gerado na resolução nativa do elemento.

Defina a SnapsToDevicePixels propriedade quando o cache exibir conteúdo que requer alinhamento de pixels para renderizar corretamente, como texto ClearType. Essa propriedade é ignorada pelas BitmapCacheBrush classes e Viewport2DVisual3D .

Armazenar em cache um controle não afeta o comportamento de mouse over, portanto, o teste de cliques sobre mouse opera como se o bitmap fosse um controle dinâmico.

A regeneração do cache ocorre somente quando a estrutura do ou de UIElement sua subárvore é alterada ou quando as CacheMode configurações são alteradas. Definir as RenderAtScale propriedades ou EnableClearType causa a regeneração do cache. As alterações na árvore visual pai do armazenado em cache UIElement, como transformações, escalas, opacidades e efeitos, não afetam o cache.

O cache funciona quando a aceleração de hardware não está disponível. Nesse caso, o bitmap é renderizado no software e as dimensões máximas de bitmap são 2048 x 2048.

Observação

RenderOptions e TextOptions não se propagam por meio de um elemento armazenado em cache. Talvez seja necessário definir essas opções novamente em elementos filho abaixo do cache.

Construtores

BitmapCache()

Inicializa uma nova instância da classe BitmapCache.

BitmapCache(Double)

Inicializa uma nova instância da classe BitmapCache com a escala especificada.

Campos

EnableClearTypeProperty

Identifica a propriedade de dependência EnableClearType.

RenderAtScaleProperty

Identifica a propriedade de dependência RenderAtScale.

SnapsToDevicePixelsProperty

Identifica a propriedade de dependência SnapsToDevicePixels.

Propriedades

CanFreeze

Obtém um valor que indica se o objeto pode se tornar não modificável.

(Herdado de Freezable)
DependencyObjectType

Obtém o DependencyObjectType que encapsula o tipo CLR dessa instância.

(Herdado de DependencyObject)
Dispatcher

Obtém o Dispatcher ao qual este DispatcherObject está associado.

(Herdado de DispatcherObject)
EnableClearType

Obtém ou define um valor que indica se o bitmap é renderizado com o ClearType ativado.

HasAnimatedProperties

Obtém um valor que indica se um ou mais objetos AnimationClock está associado a qualquer uma das propriedades de dependência do objeto.

(Herdado de Animatable)
IsFrozen

Obtém um valor que indica se o objeto pode ser modificado no momento.

(Herdado de Freezable)
IsSealed

Obtém um valor que indica se essa instância está validada no momento (somente leitura).

(Herdado de DependencyObject)
RenderAtScale

Obtém ou define um valor que indica a escala aplicada ao bitmap.

SnapsToDevicePixels

Obtém ou define um valor que indica se o bitmap é renderizado com o ajuste de pixels.

Métodos

ApplyAnimationClock(DependencyProperty, AnimationClock)

Aplica um AnimationClock ao DependencyProperty especificado. Se a propriedade já tiver sido animada, o comportamento de entrega de SnapshotAndReplace será usado.

(Herdado de Animatable)
ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior)

Aplica um AnimationClock ao DependencyProperty especificado. Se a propriedade já for animada, o HandoffBehavior especificado será usado.

(Herdado de Animatable)
BeginAnimation(DependencyProperty, AnimationTimeline)

Aplica uma animação ao DependencyProperty especificado. A animação é iniciada quando o próximo quadro for renderizado. Se a propriedade especificada já tiver sido animada, o comportamento de entrega de SnapshotAndReplace será usado.

(Herdado de Animatable)
BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior)

Aplica uma animação ao DependencyProperty especificado. A animação é iniciada quando o próximo quadro for renderizado. Se a propriedade especifica já for animada, o HandoffBehavior especificado será usado.

(Herdado de Animatable)
CheckAccess()

Determina se o thread de chamada tem acesso a este DispatcherObject.

(Herdado de DispatcherObject)
ClearValue(DependencyProperty)

Limpa o valor local de uma propriedade. A propriedade a ser limpa é especificada por um identificador DependencyProperty.

(Herdado de DependencyObject)
ClearValue(DependencyPropertyKey)

Limpa o valor local de uma propriedade somente leitura. A propriedade a ser limpa é especificada por um DependencyPropertyKey.

(Herdado de DependencyObject)
Clone()

Cria um clone modificável do BitmapCache, fazendo cópias em profundidade dos valores do objeto. Ao copiar as propriedades de dependência do objeto, esse método copia as expressões (que talvez não possam mais ser resolvidas), mas não as animações nem seus valores atuais.

CloneCore(Freezable)

Faz com que a instância seja um clone (cópia em profundidade) do Freezable especificado usando valores de propriedade base (não animados).

(Herdado de Freezable)
CloneCurrentValue()

Cria um clone modificável (cópia profunda) do BitmapCache usando seus valores atuais.

CloneCurrentValueCore(Freezable)

Torna a instância um clone modificável (cópia em profundidade) do Freezable especificado usando os valores de propriedade atuais.

(Herdado de Freezable)
CoerceValue(DependencyProperty)

Converte o valor da propriedade de dependência especificada. Isso é feito invocando qualquer função CoerceValueCallback especificada nos metadados de propriedade para a propriedade de dependência, visto que ela existe na chamada a DependencyObject.

(Herdado de DependencyObject)
CreateInstance()

Inicializa uma nova instância da classe Freezable.

(Herdado de Freezable)
CreateInstanceCore()

Quando implementado em uma classe derivada, cria uma nova instância da classe derivada Freezable.

(Herdado de Freezable)
Equals(Object)

Determina se um DependencyObject fornecido é equivalente ao DependencyObject atual.

(Herdado de DependencyObject)
Freeze()

Torna o objeto atual não modificável e define sua propriedade IsFrozen para true.

(Herdado de Freezable)
FreezeCore(Boolean)

Faz com que este objeto Animatable não seja modificável ou determina se ele pode se tornar não modificável.

(Herdado de Animatable)
GetAnimationBaseValue(DependencyProperty)

Retorna o valor não animado do DependencyProperty especificado.

(Herdado de Animatable)
GetAsFrozen()

Cria uma cópia congelada o Freezable usando valores de propriedade base (não animadas). Já que a cópia está congelada, quaisquer subobjetos congelados são copiados por referência.

(Herdado de Freezable)
GetAsFrozenCore(Freezable)

Torna a instância um clone congelado do Freezable especificado usando valores de propriedade base (não animados).

(Herdado de Freezable)
GetCurrentValueAsFrozen()

Cria uma cópia congelada do Freezable usando valores de propriedade atuais. Já que a cópia está congelada, quaisquer subobjetos congelados são copiados por referência.

(Herdado de Freezable)
GetCurrentValueAsFrozenCore(Freezable)

Torna a instância atual um clone congelado do Freezable especificado. Se o objeto tiver propriedades de dependência animadas, seus valores animados atuais serão copiados.

(Herdado de Freezable)
GetHashCode()

Obtém o código hash para esse DependencyObject.

(Herdado de DependencyObject)
GetLocalValueEnumerator()

Cria um enumerador especializado para determinar quais propriedades de dependência têm valores definidos localmente nessa DependencyObject.

(Herdado de DependencyObject)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
GetValue(DependencyProperty)

Retorna o valor efetivo atual de uma propriedade de dependência nessa instância de um DependencyObject.

(Herdado de DependencyObject)
InvalidateProperty(DependencyProperty)

Reavalia o valor efetivo para a propriedade de dependência especificada.

(Herdado de DependencyObject)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
OnChanged()

Chamado quando o objeto Freezable atual é modificado.

(Herdado de Freezable)
OnFreezablePropertyChanged(DependencyObject, DependencyObject)

Garante que os ponteiros de contexto apropriados sejam estabelecidos para um membro de dados DependencyObjectType que foi recém-definido.

(Herdado de Freezable)
OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty)

Esse membro dá suporte à infraestrutura de Windows Presentation Foundation (WPF) e não se destina a ser usado diretamente do seu código.

(Herdado de Freezable)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Substitui a implementação DependencyObject de OnPropertyChanged(DependencyPropertyChangedEventArgs) para também invocar quaisquer manipuladores Changed em resposta à alteração de uma propriedade de dependência do tipo Freezable.

(Herdado de Freezable)
ReadLocalValue(DependencyProperty)

Retorna o valor local de uma propriedade de dependência, local, se houver.

(Herdado de DependencyObject)
ReadPreamble()

Garante que o Freezable esteja sendo acessado de um thread válido. Herdeiros do Freezable devem chamar esse método no início de qualquer API que lê membros de dados que não são propriedades de dependência.

(Herdado de Freezable)
SetCurrentValue(DependencyProperty, Object)

Define o valor da propriedade de dependência sem alterar a origem do valor.

(Herdado de DependencyObject)
SetValue(DependencyProperty, Object)

Define o valor local de uma propriedade de dependência, especificada pelo identificador da propriedade de dependência.

(Herdado de DependencyObject)
SetValue(DependencyPropertyKey, Object)

Define o valor de uma propriedade de dependência somente leitura, especificada pelo identificador DependencyPropertyKey da propriedade de dependência.

(Herdado de DependencyObject)
ShouldSerializeProperty(DependencyProperty)

Retorna um valor que indica se os processos de serialização devem serializar o valor da propriedade de dependência fornecida.

(Herdado de DependencyObject)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)
VerifyAccess()

Impõe que o thread de chamada tenha acesso a este DispatcherObject.

(Herdado de DispatcherObject)
WritePostscript()

Aciona o evento Changed para o Freezable e invoca o respectivo método OnChanged(). Classes que derivam de Freezable devem chamar este método no final de qualquer API que modifica os membros de classe que não são armazenados como propriedades de dependência.

(Herdado de Freezable)
WritePreamble()

Verifica se o Freezable não está congelado e está sendo acessado de um contexto de threading válido. Herdeiros do Freezable devem chamar esse método no início de qualquer API que grava em membros de dados que não são propriedades de dependência.

(Herdado de Freezable)

Eventos

Changed

Ocorre quando o Freezable ou um objeto nele contido é modificado.

(Herdado de Freezable)

Aplica-se a

Confira também