Freezable.Clone Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Cria um clone modificável do Freezable. fazendo cópias profundas dos valores do objeto. Ao copiar as propriedades de dependência do objeto, esse método copia expressões (que podem não ser mais resolvidas), mas não animações ou 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 do IsFrozen objeto clonado é false mesmo se a propriedade da IsFrozen origem for true.
Comentários
Os Clone métodos e os CloneCurrentValue métodos 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 métodos e Clone os CloneCurrentValue métodos.
| 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 Visão Geral dos Objetos Freezable. | 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 não definidos não são copiadas. Se uma propriedade não configurada tiver um valor padrão 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 fazer 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.