Freezable.Clone Metoda

Definicja

Tworzy modyfikowalny klon Freezable, tworząc głębokie kopie wartości obiektu.Creates a modifiable clone of the Freezable, making deep copies of the object's values. Podczas kopiowania właściwości zależności obiektu ta metoda kopiuje wyrażenia (które mogą nie być już rozpoznawane), ale nie animacji ani ich bieżących wartości.When copying the object's dependency properties, this method copies expressions (which might no longer resolve) but not animations or their current values.

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

Zwraca

Modyfikowalny klon bieżącego obiektu.A modifiable clone of the current object. Właściwość IsFrozen sklonowanego obiektu jest false nawet wtedy, gdy właściwość IsFrozen źródła jest true.The cloned object's IsFrozen property is false even if the source's IsFrozen property is true.

Uwagi

Metody Clone i CloneCurrentValue dają modyfikowalne klony zamrożonych obiektów Freezable (metody również klonować obiekty Freezable, które nie są zamrożone).The Clone and CloneCurrentValue methods produce modifiable clones of frozen Freezable objects (the methods also clone Freezable objects that are not frozen). Klon jest wydajnie głęboką kopią bieżącego obiektu.The clone is effectively a deep copy of the current object.

Poniższa tabela zawiera podsumowanie różnic między metodami Clone i CloneCurrentValue.The following table summarizes the differences between the Clone and CloneCurrentValue methods.

AkcjaAction Zachowanie metody klonowaniaClone method behavior Zachowanie metody CloneCurrentValueCloneCurrentValue method behavior
Kopiowanie właściwości zależności, która ma wyrażenieCopying a dependency property that has an expression Wyrażenie jest kopiowane, ale może nie być już rozpoznawane.The expression is copied, but might no longer resolve. Aby uzyskać więcej informacji, zobacz Freezable obiektów — Omówienie.For more information, see Freezable Objects Overview. Bieżąca wartość wyrażenia jest kopiowana, ale nie sama wyrażenie.The current value of the expression is copied, but not the expression itself.
Kopiowanie właściwości zależności animowanejCopying an animated dependency property Wartość podstawowa (nieanimowana) właściwości jest kopiowana.The property's base (non-animated) value is copied. Animacje nie są kopiowane.Animations are not copied. Bieżąca animowana wartość właściwości jest kopiowana.The property's current animated value is copied. Animacje nie są kopiowane.Animations are not copied.

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

Przenoszenie Freezable między wątkamiMove a Freezable Between Threads

Ta metoda może być przydatna do przesuwania Freezable między wątkami.This method can be useful for moving a Freezable between threads. Najpierw ustaw Freezable jako niemodyfikowalny, wywołując jego metodę Freeze.First, make the Freezable unmodifiable by calling its Freeze method. Teraz inny wątek może uzyskać dostęp do Freezable i udostępnić Clone lokalnym, do którego może uzyskać dostęp.Now another thread can access the Freezable and make a local Clone that it can access.

Uwagi dotyczące dziedziczenia

Ta metoda używa CloneCore(Freezable) do tworzenia klona.This method uses CloneCore(Freezable) to produce the clone. Aby zmodyfikować zachowanie tej metody w klasie pochodnej, Zastąp metodę CloneCore(Freezable).To modify the behavior of this method in a derived class, override the CloneCore(Freezable) method.

Dotyczy

Zobacz też