Freezable.Clone Freezable.Clone Freezable.Clone Freezable.Clone Method

Definition

Erstellt einen änderbaren Klon des Freezable-Objekts, indem tiefe Kopien der Werte des Objekts erstellt werden.Creates a modifiable clone of the Freezable, making deep copies of the object's values. Beim Kopieren der Abhängigkeitseigenschaften des Objekts kopiert diese Methode Ausdrücke (die möglicherweise nicht mehr aufgelöst werden können), jedoch keine Animationen oder ihre aktuellen Werte.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

Gibt zurück

Ein änderbarer Klon des aktuellen Objekts.A modifiable clone of the current object. Die IsFrozen-Eigenschaft des geklonten Objekts ist false, auch wenn die IsFrozen-Eigenschaft der Quelle true. ist.The cloned object's IsFrozen property is false even if the source's IsFrozen property is true.

Hinweise

Die Clone - CloneCurrentValue Methode und die-Methode ergeben änderbare Klone von Freezable fixierten Freezable Objekten (die-Methoden klonen auch Objekte, die nicht eingefroren sind).The Clone and CloneCurrentValue methods produce modifiable clones of frozen Freezable objects (the methods also clone Freezable objects that are not frozen). Der Klon ist tatsächlich eine tiefe Kopie des aktuellen-Objekts.The clone is effectively a deep copy of the current object.

In der folgenden Tabelle werden die Unterschiede Clone zwischen CloneCurrentValue den Methoden und zusammengefasst.The following table summarizes the differences between the Clone and CloneCurrentValue methods.

AktionAction Verhalten der Klon MethodeClone method behavior CloneCurrentValue-Methoden VerhaltenCloneCurrentValue method behavior
Kopieren einer Abhängigkeits Eigenschaft, die über einen Ausdruck verfügtCopying a dependency property that has an expression Der Ausdruck wird kopiert, kann jedoch möglicherweise nicht mehr aufgelöst werden.The expression is copied, but might no longer resolve. Weitere Informationen finden Sie unter der Übersicht über Freezable-Objekte.For more information, see Freezable Objects Overview. Der aktuelle Wert des Ausdrucks wird kopiert, aber nicht der Ausdruck selbst.The current value of the expression is copied, but not the expression itself.
Kopieren einer animierten Abhängigkeits EigenschaftCopying an animated dependency property Der Basis Wert (nicht animierter Wert) der Eigenschaft wird kopiert.The property's base (non-animated) value is copied. Animationen werden nicht kopiert.Animations are not copied. Der aktuelle animierte Wert der Eigenschaft wird kopiert.The property's current animated value is copied. Animationen werden nicht kopiert.Animations are not copied.

Beachten Sie, dass nicht festgelegte Eigenschaften nicht kopiert werden.Note that unset properties are not copied. Wenn eine Festlegung-Eigenschaft über einen Standardwert verfügt, der Freezableeingefroren ist, bleibt der Eigenschafts Wert im anderweitig änderbaren Klon fixiert.If an unset property has a default value that is a frozen Freezable, that property value remains frozen in the otherwise modifiable clone.

Verschieben eines frei wählbaren zwischen ThreadsMove a Freezable Between Threads

Diese Methode kann nützlich sein, um ein Freezable zwischen Threads zu verschieben.This method can be useful for moving a Freezable between threads. Legen Sie zunächst die Freezable - Freeze Methode als nicht änderbar fest.First, make the Freezable unmodifiable by calling its Freeze method. Nun kann ein anderer Thread auf Freezable das zugreifen und eine Clone lokale erstellen, auf die er zugreifen kann.Now another thread can access the Freezable and make a local Clone that it can access.

Hinweise für Vererber

Diese Methode verwendet CloneCore(Freezable) , um den Klon zu entwickeln.This method uses CloneCore(Freezable) to produce the clone. Um das Verhalten dieser Methode in einer abgeleiteten Klasse zu ändern, über CloneCore(Freezable) schreiben Sie die-Methode.To modify the behavior of this method in a derived class, override the CloneCore(Freezable) method.

Gilt für:

Siehe auch