Freezable.CloneCurrentValueCore(Freezable) Метод

Определение

Делает экземпляр изменяемым клоном (глубокой копией) указанного объекта Freezable с использованием текущих значений свойств.

protected:
 virtual void CloneCurrentValueCore(System::Windows::Freezable ^ sourceFreezable);
protected virtual void CloneCurrentValueCore (System.Windows.Freezable sourceFreezable);
abstract member CloneCurrentValueCore : System.Windows.Freezable -> unit
override this.CloneCurrentValueCore : System.Windows.Freezable -> unit
Protected Overridable Sub CloneCurrentValueCore (sourceFreezable As Freezable)

Параметры

sourceFreezable
Freezable

Элемент привязки Freezable, точную копию которого необходимо создать.

Комментарии

Этот метод вызывается методом CloneCurrentValue и не должен вызываться непосредственно из кода, за исключением вызова базовой реализации при переопределении этого метода. Чтобы создать изменяемую копию текущего объекта, вызовите CloneCurrentValue вместо прямого вызова этого метода.

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

При наследовалении от Freezableэтого метода может потребоваться переопределить этот метод. Ниже перечислены причины переопределения. — Производный класс содержит данные, которые не предоставляются через свойства зависимостей.

— Производный класс должен выполнять дополнительные операции инициализации, которые невозможно выполнить путем простого переопределения CreateInstanceCore(). Например, это применимо, если производный ISupportInitializeкласс реализует .

Классы, которые хранят все свои данные в свойствах зависимостей и которые не должны выполнять дополнительную работу по инициализации, не нужно переопределять CloneCurrentValueCore(Freezable).

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

Если объект имеет анимированные свойства зависимостей, то копируется текущее анимированное значение этих свойств, но анимации отсутствуют.

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

В следующем списке приводится сводка ожидаемого поведения для этого метода.

— Созданная копия содержит копии всех Freezable вложенных объектов.

— Неустановленные и доступные только для чтения свойства не копируются.

— Если свойство анимировано, его текущее значение копируется, но сама анимация отсутствует.

— Ни один из этих вложенных объектов не заморожен при создании.

  • Сама копия не заморожена.

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

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