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
Возвращаемое значение
Модификаторный клон текущего объекта. Свойство клонированного объекта IsFrozenfalse даже если это IsFrozenсвойство источникаtrue.
Комментарии
Методы Clone создают изменяемые клоны замороженных CloneCurrentValue объектов (методы также клонируют Freezable объекты, которые не заморожены).Freezable Клон фактически является глубокой копией текущего объекта.
В следующей таблице перечислены различия между методами и Clone методамиCloneCurrentValue.
| Action | Поведение метода Клонирования | Поведение метода CloneCurrentValue |
|---|---|---|
| Копирование свойства зависимостей с выражением | Выражение копируется, но может больше не разрешаться. Для получения дополнительной информации см. Обзор замораживаемых объектов. | Текущее значение выражения копируется, но не само выражение. |
| Копирование анимированного свойства зависимостей | Копируется базовое значение свойства (не анимированное). Анимации не копируются. | Текущее анимированное значение свойства копируется. Анимации не копируются. |
Обратите внимание, что свойства без набора не копируются. Если свойство unset имеет значение по умолчанию, которое является замороженным Freezable, это значение свойства остается замороженным в противном случае модификируемым клоном.
Перемещение свободного потока
Этот метод может быть полезен для перемещения Freezable между потоками. Во-первых, сделайте Freezable неизменяемым путем вызова метода Freeze . Теперь другой поток может получить доступ к Freezable и сделать локальный Clone , к которому он может получить доступ.
Примечания для тех, кто наследует этот метод
Этот метод используется CloneCore(Freezable) для создания клона. Чтобы изменить поведение этого метода в производном классе, переопределите CloneCore(Freezable) метод.