Freezable.CloneCurrentValue Metoda

Definicja

Tworzy, modyfikowalny klon (głębokie kopiowanie) Freezable przy użyciu jego bieżących wartości.Creates a modifiable clone (deep copy) of the Freezable using its current values.

public:
 System::Windows::Freezable ^ CloneCurrentValue();
public System.Windows.Freezable CloneCurrentValue ();
member this.CloneCurrentValue : unit -> System.Windows.Freezable
Public Function CloneCurrentValue () 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 przy użyciu metody Freeze.First, make the Freezable unmodifiable by using its Freeze method. Teraz inny wątek może uzyskać dostęp do Freezable i utworzyć lokalny klon, do którego ma 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 metody CloneCurrentValueCore(Freezable) do tworzenia klonu; Freezable realizatorów, którzy zastępują CloneCurrentValueCore(Freezable) muszą mieć pewność, że kopia nie zostanie zamrożona podczas tworzenia.This method uses the CloneCurrentValueCore(Freezable) method to produce the clone; Freezable implementers who override CloneCurrentValueCore(Freezable) must ensure that the copy is not frozen on creation.

Dotyczy

Zobacz też