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.

 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)


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(). 例如,这适用于你的派生的类实现ISupportInitializeFor 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. 默认实现使任何的可冻结的对象的所有其他可写的浅表副本,本地设置属性,它包含深层的副本。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.