Freezable.CloneCurrentValue Метод

Определение

Создает редактируемую копию (глубокую копию) объекта Freezable с использованием его текущих значений.

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

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

Freezable

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

Комментарии

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

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

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

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

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

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

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

Этот метод использует CloneCurrentValueCore(Freezable) метод для создания клона; Freezable реализующие, которые переопределяют CloneCurrentValueCore(Freezable) , должны убедиться, что копия не заморожена при создании.

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

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