Freezable.CloneCore(Freezable) Freezable.CloneCore(Freezable) Freezable.CloneCore(Freezable) Freezable.CloneCore(Freezable) Method

Definición

Convierte la instancia en un clon (copia en profundidad) de la clase Freezable especificada con valores de propiedad base (no animadas).Makes the instance a clone (deep copy) of the specified Freezable using base (non-animated) property values.

protected:
 virtual void CloneCore(System::Windows::Freezable ^ sourceFreezable);
protected virtual void CloneCore (System.Windows.Freezable sourceFreezable);
abstract member CloneCore : System.Windows.Freezable -> unit
override this.CloneCore : System.Windows.Freezable -> unit
Protected Overridable Sub CloneCore (sourceFreezable As Freezable)

Parámetros

sourceFreezable
Freezable Freezable Freezable Freezable

Objeto que se va a clonar.The object to clone.

Comentarios

El Clone método llama a este método y no se debe llamar directamente desde el código, excepto cuando se llama a la implementación base al invalidar este método.This method is called by the Clone method and should not be called directly from your code, except when calling the base implementation while overriding this method. Para crear una copia modificable del objeto actual, llame a Clone en lugar de llamar a este método directamente.To create a modifiable copy of the current object, call Clone instead of calling this method directly.

Notas a los desarrolladores de herederos

Si deriva de Freezable, puede que tenga que invalidar este método.If you derive from Freezable, you may need to override this method. Entre los motivos de invalidación se incluyen los siguientes:Reasons to override include the following: -La clase derivada tiene datos que no se exponen a través de las propiedades de dependencia.- Your derived class has data that is not exposed via dependency properties.

-La clase derivada debe realizar un trabajo de inicialización adicional que no se puede llevar CreateInstanceCore()a cabo simplemente invalidando.- Your derived class must perform extra initialization work that cannot be accomplished by simply overriding CreateInstanceCore(). Por ejemplo, esto se aplica si la clase derivada implementa ISupportInitialize.For example, this applies if your derived class implements ISupportInitialize.

No es necesario invalidar CloneCore(Freezable)las clases que almacenan todos sus datos en propiedades de dependencia y que no necesitan realizar ningún trabajo de inicialización adicional.Classes that store all their data in dependency properties and that do not need to perform extra initialization work do not need to override CloneCore(Freezable).

Es fundamental que todas las implementaciones llamen a la implementación base de este método.It is essential that all implementations call the base implementation of this method. Las implementaciones solo deben realizar el trabajo que no realiza la implementación predeterminada.Implementations should only perform work that is not performed by the default implementation. La implementación predeterminada hace copias en profundidad de todas las propiedades que se puedan escribir y establecer localmente, incluidas las expresiones internas.The default implementation makes deep copies of all writable, locally set properties, including internal expressions.

Si el objeto tiene propiedades de dependencia enlazadas a datos, las expresiones se copian, pero es posible que ya no se resuelvan.If the object has data-bound dependency properties, the expressions are copied but might no longer resolve. Para obtener más información sobre la clonación de objetos enlazados a datos, vea información general sobre objetos Freezable.For more information about cloning data-bound objects, see Freezable Objects Overview. Si el objeto tiene propiedades de dependencia animadas, se copia el valor base (no animado) de esas propiedades.If the object has animated dependency properties, the base (non-animated) value of those properties is copied. Las animaciones no se copian.Animations are not copied.

Tenga en cuenta que las propiedades no anuladas no se copian, ni son propiedades de solo lectura.Note that unset properties are not copied, nor are read-only properties. Si dicha propiedad tiene un valor predeterminado que es un inmovilizado Freezable, ese valor de propiedad permanece inmovilizado en el clon modificable de otro modo.If such a property has a default value that is a frozen Freezable, that property value remains frozen in the otherwise modifiable clone.

En la lista siguiente se resume el comportamiento esperado para este método:The following list summarizes the expected behavior for this method: -La copia generada contiene copias de Freezable todos los subobjetos.- The copy produced contains copies of all Freezable sub-objects.

-Unset y no se copian las propiedades de solo lectura.- Unset and read-only properties are not copied.

-Se copian las expresiones.- Expressions are copied.

-Ninguno de estos subobjetos se inmoviliza durante la creación.- None of these sub-objects are frozen on creation.

-La copia en sí no está inmovilizada.- The copy itself is not frozen.

-Las animaciones no se copian.- Animations are not copied.

-Solo se copian los valores base de propiedad, no los valores animados actuales.- Only property base values are copied, not current animated values.

Se aplica a

Consulte también: