Compartilhar via


Freezable.Clone Método

Definição

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.

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

Retornos

Um clone modificável do objeto atual. A propriedade IsFrozen do objeto clonado será false, mesmo se a propriedade IsFrozen da origem for true.

Comentários

Os Clone métodos e CloneCurrentValue produzem clones modificáveis de objetos congelados Freezable (os métodos também clonam Freezable objetos que não estão congelados). O clone é efetivamente uma cópia profunda do objeto atual.

A tabela a seguir resume as diferenças entre os Clone métodos e CloneCurrentValue .

Ação Comportamento do método Clone Comportamento do método CloneCurrentValue
Copiando uma propriedade de dependência que tem uma expressão A expressão é copiada, mas pode não ser mais resolvida. Para obter mais informações, consulte a Visão geral de objetos congeláveis. O valor atual da expressão é copiado, mas não a expressão em si.
Copiar 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 não definidos não são copiadas. Se uma propriedade unset tiver um valor padrão que seja congelado Freezable, esse valor de propriedade permanecerá congelado no clone modificável de outra forma.

Mover um freezable entre threads

Esse método pode ser útil para mover um Freezable entre threads. Primeiro, torne o Freezable não modificável chamando seu Freeze método. Agora, outro thread pode acessar e Freezable tornar um local Clone que ele possa acessar.

Notas aos Herdeiros

Esse método usa CloneCore(Freezable) para produzir o clone. Para modificar o comportamento desse método em uma classe derivada, substitua o CloneCore(Freezable) método .

Aplica-se a

Confira também