Freezable.CloneCore(Freezable) Метод

Определение

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

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

Параметры

sourceFreezable
Freezable

Объект, используемый для клонирования.

Комментарии

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

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

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

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

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

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

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

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

В следующем списке приводится сводка ожидаемого поведения для этого метода: — Созданная копия содержит копии всех Freezable подобъектов.

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

-Выражения копируются.

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

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

-Анимации не копируются.

— Копируются только базовые значения свойств, а не текущие анимированные значения.

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

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