Freezable.GetAsFrozenCore(Freezable) Freezable.GetAsFrozenCore(Freezable) Freezable.GetAsFrozenCore(Freezable) Freezable.GetAsFrozenCore(Freezable) Method

Определение

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

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

Параметры

sourceFreezable
Freezable Freezable Freezable Freezable

Экземпляр, который копируется.The instance to copy.

Комментарии

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

Классы, хранящие все свои данные в свойствах зависимостей и не требующие дополнительной работы по инициализации, не нуждаются в переопределении GetAsFrozenCore(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 GetAsFrozenCore(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. Реализация по умолчанию создает глубокие копии всех незамороженных элементов Freezable и поверхностных копий всех других доступных для записи свойств, которые задаются локально.The default implementation makes deep copies of any unfrozen freezables and shallow copies of all other writable, locally set properties it contains. Если объект имеет свойства зависимостей, привязанные к данным, выражения копируются, но могут больше не разрешаться; Дополнительные сведения о клонировании объектов, привязанных к данным, см. в разделе Общие сведения об объектах Freezable.If the object has data-bound dependency properties, the expressions are copied but might no longer resolve; for more information about cloning data-bound objects, see Freezable Objects Overview. Если объект имеет анимированные свойства зависимостей, копируются базовые (неанимированные) значения этих свойств.If the object has animated dependency properties, the base (non-animated) values of those properties are copied. Анимации не копируются.Animations are not copied.

Обратите внимание, что неопределенные свойства не копируются и не являются свойствами только для чтения.Note that unset properties are not copied, nor are read-only properties.

При переопределении этого метода необходимо вызвать базовую реализацию.If you do override this method, you must call the base implementation.

При копировании Freeze() значения не нужны.You do not need to Freeze() values as they are copied. Результат зафиксируется GetAsFrozen() перед возвратом.The result is frozen by GetAsFrozen() before being returned.

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

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