Freezable.Clone Метод

Определение

Создает изменяемый клон данного объекта Freezable, делая глубокие копии значений этого объекта. При копировании свойств зависимостей объекта этот метод копирует выражения (которые могут уже не быть разрешимыми), но не копирует анимации и их текущие значения.

public:
 System::Windows::Freezable ^ Clone();
public System.Windows.Freezable Clone ();
member this.Clone : unit -> System.Windows.Freezable
Public Function Clone () As Freezable

Возвращаемое значение

Freezable

Изменяемая копия текущего объекта. Свойство IsFrozen объекта-копии содержит значение false, даже если свойство IsFrozen исходного объекта содержит значение true.

Комментарии

Методы Clone создают CloneCurrentValue изменяемые клоны замороженных Freezable объектов (методы также клонируют Freezable объекты, которые не заморожены). Клон фактически является глубокой копией текущего объекта.

В следующей таблице перечислены различия между методами и CloneCurrentValue методамиClone.

Действие Поведение метода клонирования Поведение метода CloneCurrentValue
Копирование свойства зависимостей с выражением Выражение копируется, но может перестать разрешаться. Дополнительные сведения см. в разделе Общие сведения об объектах класса Freezable. Текущее значение выражения копируется, но не само выражение.
Копирование анимированного свойства зависимостей Копируется базовое (не анимированное) значение свойства. Анимации не копируются. Копируется текущее анимированное значение свойства. Анимации не копируются.

Обратите внимание, что свойства без набора не копируются. Если свойство unset имеет значение по умолчанию, которое является замороженным Freezable, это значение свойства остается замороженным в изменяемом клоне.

Перемещение освобождаемого между потоками

Этот метод может быть полезен для перемещения Freezable между потоками. Во-первых, сделайте неизменяемый Freezable , вызвав его Freeze метод. Теперь другой поток может получить доступ к Freezable нему и сделать локальный Clone , к которому он может получить доступ.

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

Этот метод используется CloneCore(Freezable) для создания клона. Чтобы изменить поведение этого метода в производном классе, переопределите CloneCore(Freezable) метод.

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

См. также раздел