Freezable.CloneCore(Freezable) Метод

Определение

Делает экземпляр клоном (глубокой копией) указанного объекта Freezable, используя базовые (без анимации) значения свойств.Makes the instance a clone (deep copy) of the specified Freezable using base (non-animated) property values.

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

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

Комментарии

Этот метод вызывается методом Clone и не должен вызываться непосредственно из кода, за исключением случаев вызова базовой реализации при переопределении этого метода.This method is called by the Clone method and should not be called directly from your code, except when calling the base implementation while overriding this method. Чтобы создать изменяемую копию текущего объекта, вызовите Clone вместо непосредственного вызова этого метода.To create a modifiable copy of the current object, call Clone instead of calling this method directly.

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

Если вы наследуете от Freezable, может потребоваться переопределить этот метод.If you derive from Freezable, you may need to override this method. Ниже перечислены причины переопределения.Reasons to override include the following: -У производного класса есть данные, которые не предоставляются через свойства зависимостей.- Your derived class has data that is not exposed via dependency properties.

— Ваш производный класс должен выполнять дополнительные операции инициализации, которые не могут быть выполнены путем простого переопределения CreateInstanceCore().- Your derived class must perform extra initialization work that cannot be accomplished by simply overriding CreateInstanceCore(). Например, это применимо, если производный класс реализует ISupportInitialize.For example, this applies if your derived class implements ISupportInitialize.

Классы, хранящие все свои данные в свойствах зависимостей и не требующие дополнительной работы по инициализации, не нуждаются в переопределении CloneCore(Freezable).Classes that store all their data in dependency properties and that do not need to perform extra initialization work do not need to override CloneCore(Freezable).

Важно, чтобы все реализации вызывали базовую реализацию этого метода.It is essential that all implementations call the base implementation of this method. Реализации должны выполнять только работу, которая не выполняется реализацией по умолчанию.Implementations should only perform work that is not performed by the default implementation. Реализация по умолчанию делает глубокие копии всех доступных для записи, локально заданных свойств, включая внутренние выражения.The default implementation makes deep copies of all writable, locally set properties, including internal expressions.

Если объект имеет свойства зависимостей, привязанные к данным, выражения копируются, но могут больше не разрешаться.If the object has data-bound dependency properties, the expressions are copied but might no longer resolve. Дополнительные сведения о клонировании объектов, привязанных к данным, см. в разделе Общие сведения об объектах Freezable.For more information about cloning data-bound objects, see Freezable Objects Overview. Если объект имеет анимированные свойства зависимостей, копируется базовое (не анимационное) значение этих свойств.If the object has animated dependency properties, the base (non-animated) value of those properties is copied. Анимации не копируются.Animations are not copied.

Обратите внимание, что неопределенные свойства не копируются и не являются свойствами только для чтения.Note that unset properties are not copied, nor are read-only properties. Если такое свойство имеет значение по умолчанию, которое является замороженным Freezable, то значение этого свойства остается замороженным в другой, изменяемой клоне.If such a property has a default value that is a frozen Freezable, that property value remains frozen in the otherwise modifiable clone.

В следующем списке приводится сводка ожидаемого поведения для этого метода:The following list summarizes the expected behavior for this method: — Созданная копия содержит копии всех Freezable дочерних объектов.- The copy produced contains copies of all Freezable sub-objects.

-Не задавайте и свойства только для чтения не копируются.- Unset and read-only properties are not copied.

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

— Ни один из этих вложенных объектов не замораживается при создании.- None of these sub-objects are frozen on creation.

— Сама копия не заморожена.- The copy itself is not frozen.

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

— Копируются только базовые значения свойств, а не текущие анимированные значения.- Only property base values are copied, not current animated values.

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

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