Compartilhar via


Freezable.GetAsFrozen Método

Definição

Cria uma cópia congelada dos valores de Freezablepropriedade base (não animados). Como a cópia está congelada, todos os sub-objetos congelados são copiados por referência.

public:
 System::Windows::Freezable ^ GetAsFrozen();
public System.Windows.Freezable GetAsFrozen();
member this.GetAsFrozen : unit -> System.Windows.Freezable
Public Function GetAsFrozen () As Freezable

Retornos

Uma cópia congelada do Freezable. A propriedade da IsFrozen cópia está definida como true.

Exceções

Não Freezable pode ser congelado porque contém expressões ou propriedades animadas.

Comentários

Você deve verificar a CanFreeze propriedade antes de chamar esse método para verificar se ela Freezable pode ser congelada. Usar esse método é semelhante à criação de uma cópia usando e Clone , em seguida, congelá-la com o Freeze método.

Os métodos e os GetAsFrozenGetCurrentValueAsFrozen métodos podem melhorar o desempenho de cópia porque eles não clonam Freezable sub-objetos que já estão congelados; eles só os copiam por referência.

A tabela a seguir resume as diferenças entre os métodos e GetCurrentValueAsFrozen os GetAsFrozen métodos.

Ação Comportamento do método GetAsFrozen Comportamento do método GetCurrentValueAsFrozen
Copiando uma propriedade de dependência que tem uma expressão O método lança um InvalidOperationException porque não pode Freeze a propriedade. O valor atual da expressão é copiado, mas não a expressão em si.
Copiando uma propriedade de dependência animada O valor base da propriedade (não animado) é copiado. As animações não são copiadas. O valor animado atual da propriedade é copiado. As animações não são copiadas.

Observe que as propriedades unset não são copiadas nem são propriedades somente leitura.

Para criar uma cópia do Freezable que não está congelado, use o Clone método.

Notas aos Herdeiros

Esse método usa o método virtual GetAsFrozenCore(Freezable) para produzir o clone.

Aplica-se a

Confira também