Freezable.Clone Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Crea un clon modificable del elemento Freezable y hace copias en profundidad de los valores del objeto. Cuando se copian las propiedades de dependencia del objeto, este método copia las expresiones (que puede que ya no se resuelvan), pero no copia las 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 IsFrozen del objeto clonado es false
aunque la propiedad IsFrozen del origen sea true
.
Comentarios
Los Clone métodos y CloneCurrentValue generan clones modificables de objetos congelados (los métodos también clonan Freezable objetos que no están inmovilizadosFreezable). 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 .
Acción | 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 Freezable. | 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 no se copian las propiedades sin establecer. Si una propiedad unset tiene un valor predeterminado que es un inmovilizado Freezable, ese valor de propiedad permanece inmovilizado en el clon modificable de otro modo.
Mover un objeto Freezable entre subprocesos
Este método puede ser útil para mover un objeto Freezable entre subprocesos. En primer lugar, haga que no Freezable se pueda modificar llamando a su Freeze método. Ahora otro subproceso puede acceder Freezable a 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, reemplace el CloneCore(Freezable) método .