Freezable.CloneCurrentValue Метод

Определение

Создает редактируемую копию (глубокую копию) объекта Freezable с использованием его текущих значений.Creates a modifiable clone (deep copy) of the Freezable using its current values.

public:
 System::Windows::Freezable ^ CloneCurrentValue();
public System.Windows.Freezable CloneCurrentValue ();
member this.CloneCurrentValue : unit -> System.Windows.Freezable
Public Function CloneCurrentValue () 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 using its Freeze method. Теперь другой поток может получить доступ к Freezable и сделать локальный клон, к которому он имеет доступ.Now another thread can access the Freezable and make a local clone that it can access.

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

Для создания клона в этом методе используется метод CloneCurrentValueCore(Freezable). Freezable разработчиков, переопределяющих CloneCurrentValueCore(Freezable), должны гарантировать, что копия не будет заморожена при создании.This method uses the CloneCurrentValueCore(Freezable) method to produce the clone; Freezable implementers who override CloneCurrentValueCore(Freezable) must ensure that the copy is not frozen on creation.

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

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