Freezable.CloneCurrentValue Metoda

Definicja

Tworzy modyfikowalny klon (kopię głęboką) Freezable obiektu przy użyciu jego bieżących wartości.

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. Właściwość sklonowanego obiektu IsFrozen jest false nawet wtedy, gdy właściwość źródła IsFrozen to true.

Uwagi

Metody Clone i CloneCurrentValue tworzą modyfikowalne klony zamrożonych Freezable obiektów (metody również klonują Freezable obiekty, które nie są zamrożone). Klon jest w rzeczywistości głęboką kopią bieżącego obiektu.

W poniższej tabeli przedstawiono podsumowanie różnic między metodami Clone i CloneCurrentValue .

Akcja Zachowanie metody klonowania Zachowanie metody CloneCurrentValue
Kopiowanie właściwości zależności z wyrażeniem Wyrażenie jest kopiowane, ale może już nie zostać rozwiązane. Aby uzyskać więcej informacji, zobacz Omówienie obiektów z możliwością zamrażania. Bieżąca wartość wyrażenia jest kopiowana, ale nie sama wyrażenie.
Kopiowanie animowanej właściwości zależności Wartość podstawowa właściwości (nieimowana) jest kopiowana. Animacje nie są kopiowane. Bieżąca animowana wartość właściwości jest kopiowana. Animacje nie są kopiowane.

Należy pamiętać, że nie są kopiowane nieskonfigurowane właściwości. Jeśli właściwość nieskonfigurowana ma wartość domyślną, która jest zamrożona Freezable, ta wartość właściwości pozostaje zamrożona w klonie modyfikowalnym.

Przenoszenie zamrażalnego między wątkami

Ta metoda może być przydatna Freezable do przenoszenia między wątkami. Najpierw należy uczynić Freezable go niemodyfikowalnym za pomocą metody Freeze . Teraz inny wątek może uzyskać dostęp do Freezable pliku i utworzyć lokalny klon, do którego może uzyskać dostęp.

Uwagi dotyczące dziedziczenia

Ta metoda używa CloneCurrentValueCore(Freezable) metody do utworzenia klonu; Freezable implementatory, które zastępują CloneCurrentValueCore(Freezable) , muszą upewnić się, że kopia nie jest zamrożona podczas tworzenia.

Dotyczy

Zobacz też