Freezable.GetAsFrozen Método

Definição

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.

C#
public System.Windows.Freezable GetAsFrozen ();

Retornos

Freezable

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

Exceções

O Freezable não pode ser congelado porque ele 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. O uso desse método é semelhante à criação de uma cópia usando o Clone método e, em seguida, congelando-o com o Freeze método.

Os GetAsFrozen métodos e os GetCurrentValueAsFrozen 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 gera 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 (não animado) da propriedade é 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 não desajustadas 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

Produto Versões
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
Windows Desktop 3.0, 3.1, 5, 6, 7

Confira também