Freezable.Clone Método

Definición

Crea un clon modificable de Freezable, haciendo copias profundas de los valores del objeto. Al copiar las propiedades de dependencia del objeto, este método copia expresiones (que podrían dejar de resolverse), pero no animaciones ni sus valores actuales.

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

Devoluciones

Clon modificable del objeto actual. La propiedad del IsFrozen objeto clonado es false incluso si la propiedad del IsFrozen origen es true.

Comentarios

Los Clone métodos y CloneCurrentValue producen clones modificables de objetos congelados Freezable (los métodos también clonan Freezable objetos que no están inmovilizados). El clon es efectivamente una copia profunda del objeto actual.

En la tabla siguiente se resumen las diferencias entre los Clone métodos y CloneCurrentValue .

Action Comportamiento del método de clonación Comportamiento del método CloneCurrentValue
Copia de una propiedad de dependencia que tiene una expresión La expresión se copia, pero es posible que ya no se resuelva. Para obtener más información, consulte Información general sobre objetos congelables. El valor actual de la expresión se copia, pero no la propia expresión.
Copia de una propiedad de dependencia animada El valor base (no animado) de la propiedad se copia. Las animaciones no se copian. El valor animado actual de la propiedad se copia. Las animaciones no se copian.

Tenga en cuenta que las propiedades no se copian. Si una propiedad unset tiene un valor predeterminado que es un inmovilizado Freezable, ese valor de propiedad permanece inmovilizado en el clon modificable de lo contrario.

Mover un objeto Freezable Entre subprocesos

Este método puede ser útil para mover un objeto Freezable entre subprocesos. En primer lugar, llame a su Freeze método para que no Freezable se pueda modificar. Ahora otro subproceso puede acceder a Freezable y crear un entorno local Clone al que pueda acceder.

Notas a los desarrolladores de herederos

Este método usa CloneCore(Freezable) para generar el clon. Para modificar el comportamiento de este método en una clase derivada, invalide el CloneCore(Freezable) método .

Se aplica a

Consulte también