Partilhar via


Freezable Classe

Definição

Define um objeto que tem um estado modificável e um estado somente leitura (congelado). Classes que derivam de Freezable fornecem notificação de alteração detalhada, podem ser transformadas em imutáveis e podem clonar a si mesmas.

public ref class Freezable abstract : System::Windows::DependencyObject
public abstract class Freezable : System.Windows.DependencyObject
type Freezable = class
    inherit DependencyObject
Public MustInherit Class Freezable
Inherits DependencyObject
Herança
Derivado

Comentários

A Freezable classe fornece recursos especiais que podem ajudar a melhorar o desempenho do aplicativo ao usar objetos caros para modificar ou copiar. Exemplos de Freezable objetos incluem o seguinte:

Derivando de Freezable

Uma classe derivada de Freezable obtém os seguintes recursos:

  • Estados especiais: um estado somente leitura (congelado) e um estado gravável.

  • Segurança de thread: um objeto congelado Freezable pode ser compartilhado entre threads.

  • Notificação de alteração detalhada: ao contrário de outros DependencyObject objetos, um Freezable objeto fornece notificações de alteração quando os valores da subprop propriedade são alterados.

  • Fácil clonagem: a classe Congelável tem vários métodos já implementados que produzem clones profundos.

Para obter informações sobre como usar e criar seus próprios Freezable objetos, consulte Visão geral de objetos do Freezable.

Construtores

Freezable()

Inicializa uma nova instância de uma classe derivada de Freezable.

Propriedades

CanFreeze

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

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)
IsFrozen

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

IsSealed

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

(Herdado de DependencyObject)

Métodos

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 Freezable, 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).

CloneCurrentValue()

Cria um clone modificável (cópia profunda) do Freezable 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.

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.

CreateInstanceCore()

Quando implementado em uma classe derivada, cria uma nova instância da classe derivada 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.

Freeze(Freezable, Boolean)

Se o parâmetro isChecking é true, este método indica se o Freezable especificado pode ser tornado não modificável. Se o parâmetro isChecking é false, esse método tenta tornar o Freezable especificado não modificável e indica se a operação foi bem-sucedida.

FreezeCore(Boolean)

Torna o objeto Freezable não modificável ou testa se ele pode ser transformado em não modificável.

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.

GetAsFrozenCore(Freezable)

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

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.

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.

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.

OnFreezablePropertyChanged(DependencyObject, DependencyObject)

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

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.

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.

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.

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.

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.

Eventos

Changed

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

Aplica-se a

Acesso thread-safe

Todos os membros públicos static desse tipo são thread-safe. Não há garantia de que qualquer membro de instância seja seguro para threads.

Quando a IsFrozen propriedade é false, um Freezable objeto só pode ser acessado do thread no qual foi criado. Tentar acessá-lo de outro thread lança um InvalidOperationException. Os Invoke métodos e BeginInvoke dão suporte para marshaling para o thread correto.

Quando sua IsFrozen propriedade é true, Freezable os objetos são de thread livre. Para obter mais informações, consulte a Visão geral de objetos congeláveis.