Freezable.CloneCurrentValue Metoda

Definicja

Umożliwia utworzenie sklonowanego klonu (głębokiej kopii) Freezable przy użyciu 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

Freezable

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

Uwagi

CloneMetody i CloneCurrentValue generują modyfikowalne klony zablokowanych Freezable obiektów (metody również klonować Freezable obiekty, 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 Clone CloneCurrentValue metodami i.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 poruszania się Freezable między wątkami.This method can be useful for moving a Freezable between threads. Najpierw ustaw, aby nie Freezable modyfikować za pomocą Freeze metody.First, make the Freezable unmodifiable by using its Freeze method. Teraz inny wątek może uzyskać dostęp do Freezable i uczynić lokalnym klonem, 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 CloneCurrentValueCore(Freezable) metody do tworzenia klona; Freezable realizatorzy, którzy zastępują, CloneCurrentValueCore(Freezable) muszą upewnić się, że kopia nie została 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ż