Freezable.CloneCore(Freezable) Metoda

Definicja

Sprawia, że wystąpienie jest klonem (głębokiej kopii) określonego Freezable przy użyciu podstawowych (nieanimowanych) wartości właściwości.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)

Parametry

sourceFreezable
Freezable

Obiekt, który ma zostać sklonowany.The object to clone.

Uwagi

Ta metoda jest wywoływana przez metodę Clone i nie powinna być wywoływana bezpośrednio z kodu, chyba że podczas wywoływania implementacji podstawowej podczas zastępowania tej metody.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. Aby utworzyć modyfikowalną kopię bieżącego obiektu, wywołaj Clone zamiast bezpośrednio wywołać tę metodę.To create a modifiable copy of the current object, call Clone instead of calling this method directly.

Uwagi dotyczące dziedziczenia

Jeśli pochodzą z Freezable, może być konieczne zastąpienie tej metody.If you derive from Freezable, you may need to override this method. Przyczyny zastąpienia obejmują następujące elementy:Reasons to override include the following: -Klasa pochodna ma dane, które nie są udostępniane za pośrednictwem właściwości zależności.- Your derived class has data that is not exposed via dependency properties.

-Klasa pochodna musi wykonywać dodatkowe czynności inicjacji, których nie można osiągnąć przez po prostu zastąpienie CreateInstanceCore().- Your derived class must perform extra initialization work that cannot be accomplished by simply overriding CreateInstanceCore(). Na przykład ma to zastosowanie, jeśli Klasa pochodna implementuje ISupportInitialize.For example, this applies if your derived class implements ISupportInitialize.

Klasy, w których są przechowywane wszystkie dane we właściwościach zależności, które nie muszą wykonywać dodatkowej pracy inicjującej, nie muszą przesłonić CloneCore(Freezable).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).

Należy koniecznie, aby wszystkie implementacje wywoływały podstawową implementację tej metody.It is essential that all implementations call the base implementation of this method. Implementacje powinny wykonywać wyłącznie zadania, które nie są wykonywane przez implementację domyślną.Implementations should only perform work that is not performed by the default implementation. Domyślna implementacja powoduje głębokie kopie wszystkich zapisywalnych, lokalnie ustawionych właściwości, łącznie z wyrażeniami wewnętrznymi.The default implementation makes deep copies of all writable, locally set properties, including internal expressions.

Jeśli obiekt ma właściwości zależności powiązane z danymi, wyrażenia są kopiowane, ale mogą nie być już rozpoznawane.If the object has data-bound dependency properties, the expressions are copied but might no longer resolve. Aby uzyskać więcej informacji na temat klonowania obiektów powiązanych z danymi, zobacz Freezable obiektów — Omówienie.For more information about cloning data-bound objects, see Freezable Objects Overview. Jeśli obiekt ma animowane właściwości zależności, kopiowana jest wartość podstawowa (nieanimowana) tych właściwości.If the object has animated dependency properties, the base (non-animated) value of those properties is copied. Animacje nie są kopiowane.Animations are not copied.

Należy zauważyć, że właściwości nie są kopiowane, ani nie są właściwościami tylko do odczytu.Note that unset properties are not copied, nor are read-only properties. Jeśli taka właściwość ma wartość domyślną zamrożoną Freezable, wartość tej właściwości pozostaje zamrożona w niemodyfikowalnym klonie.If such a property has a default value that is a frozen Freezable, that property value remains frozen in the otherwise modifiable clone.

Poniższa lista zawiera podsumowanie oczekiwanego zachowania tej metody:The following list summarizes the expected behavior for this method: -Utworzona kopia zawiera kopie wszystkich Freezable podrzędnych obiektów.- The copy produced contains copies of all Freezable sub-objects.

Nie są kopiowane właściwości-unonly i tylko do odczytu.- Unset and read-only properties are not copied.

-Wyrażenia są kopiowane.- Expressions are copied.

-Żadne z tych obiektów podrzędnych nie są zamrożone podczas tworzenia.- None of these sub-objects are frozen on creation.

-Sama kopia nie jest zamrożona.- The copy itself is not frozen.

-Animacje nie są kopiowane.- Animations are not copied.

Są kopiowane tylko wartości podstawowe właściwości, a nie bieżące wartości animowane.- Only property base values are copied, not current animated values.

Dotyczy

Zobacz też