Freezable.Clone Метод

Определение

Создает изменяемый клон данного объекта Freezable, делая глубокие копии значений этого объекта.Creates a modifiable clone of the Freezable, making deep copies of the object's values. При копировании свойств зависимостей объекта этот метод копирует выражения (которые могут уже не быть разрешимыми), но не копирует анимации и их текущие значения.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

Возвраты

Изменяемая копия текущего объекта.A modifiable clone of the current object. Свойство IsFrozen клонированного объекта имеет значение false, даже если свойство IsFrozen исходного объекта имеет значение true..The cloned object's IsFrozen property is false even if the source's IsFrozen property is true.

Комментарии

Методы Clone и CloneCurrentValue создают изменяемые клоны зафиксированных Freezable объектов (методы также могут клонировать Freezable объекты, которые не заморожены).The Clone and CloneCurrentValue methods produce modifiable clones of frozen Freezable objects (the methods also clone Freezable objects that are not frozen). Клон фактически является глубокой копией текущего объекта.The clone is effectively a deep copy of the current object.

В следующей таблице приведены различия между методами Clone и CloneCurrentValue.The following table summarizes the differences between the Clone and CloneCurrentValue methods.

ДействиеAction Поведение метода CloneClone method behavior Поведение метода КлонекуррентвалуеCloneCurrentValue method behavior
Копирование свойства зависимостей, имеющего выражениеCopying a dependency property that has an expression Выражение копируется, но может больше не разрешаться.The expression is copied, but might no longer resolve. Дополнительные сведения см. в разделе Общие сведения об объектах класса Freezable.For more information, see Freezable Objects Overview. Текущее значение выражения копируется, но не само выражение.The current value of the expression is copied, but not the expression itself.
Копирование анимированного свойства зависимостейCopying an animated dependency property Копируется базовое (не анимационное) значение свойства.The property's base (non-animated) value is copied. Анимации не копируются.Animations are not copied. Копируется текущее анимированное значение свойства.The property's current animated value is copied. Анимации не копируются.Animations are not copied.

Обратите внимание, что неопределенные свойства не копируются.Note that unset properties are not copied. Если неопределенное свойство имеет значение по умолчанию, которое является замороженным Freezable, то значение этого свойства остается замороженным в случае неизменяемого клона.If an unset property has a default value that is a frozen Freezable, that property value remains frozen in the otherwise modifiable clone.

Перемещение объекта Freezable между потокамиMove a Freezable Between Threads

Этот метод может быть полезен для перемещения Freezable между потоками.This method can be useful for moving a Freezable between threads. Сначала сделайте Freezable неизменяемым, вызвав его метод Freeze.First, make the Freezable unmodifiable by calling its Freeze method. Теперь другой поток может получить доступ к Freezable и сделать локальную Clone, к которой он имеет доступ.Now another thread can access the Freezable and make a local Clone that it can access.

Примечания для тех, кто наследует этот метод

Этот метод использует CloneCore(Freezable) для создания клона.This method uses CloneCore(Freezable) to produce the clone. Чтобы изменить поведение этого метода в производном классе, переопределите метод CloneCore(Freezable).To modify the behavior of this method in a derived class, override the CloneCore(Freezable) method.

Применяется к

Дополнительно