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 вложенных объектов.

  • Свойства unset и только для чтения не копируются.

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

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

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

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

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

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

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