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 вложенных объектов.
Неподписанные и доступные только для чтения свойства не копируются.
Выражения копируются.
Ни один из этих вложенных объектов не заморожен при создании.
Сама копия не заморожена.
Анимации не копируются.
Копируются только базовые значения свойств, а не текущие анимированные значения.