Freezable.Clone Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Tworzy modyfikowalny klon obiektu Freezable, tworząc głębokie kopie wartości obiektu. Podczas kopiowania właściwości zależności obiektu ta metoda kopiuje wyrażenia (które mogą nie być już rozpoznawane), ale nie animacje ani ich bieżące wartości.
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. 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. |
Pamiętaj, że nieskonfigurowane właściwości nie są kopiowane. Jeśli właściwość nieskonfigurowana ma wartość domyślną, która jest zamrożona, ta wartość właściwości pozostaje zamrożona Freezablew klonie modyfikowalnym w przeciwnym razie.
Przenoszenie z możliwością zamrożenia między wątkami
Ta metoda może być przydatna Freezable do przenoszenia między wątkami. Najpierw należy uczynić Freezable element niemodifikowalnym przez wywołanie metody Freeze . Teraz inny wątek może uzyskać dostęp do elementu Freezable i utworzyć lokalny Clone dostęp do niego.
Uwagi dotyczące dziedziczenia
Ta metoda używa CloneCore(Freezable) metody do utworzenia klonu. Aby zmodyfikować zachowanie tej metody w klasie pochodnej, zastąp metodę CloneCore(Freezable) .