Freezable.GetAsFrozenCore(Freezable) 方法

定义

让该实例成为指定的 Freezable 的冻结克隆,前者使用基(非动画的)属性值。

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

要复制的实例。

注解

此方法由 GetAsFrozen 方法调用,不应直接从代码调用,除非在重写此方法时调用基实现。 若要创建当前对象的冻结副本,请调用 GetAsFrozen 而不是直接调用此方法。

继承者说明

如果派生自 Freezable ,则可能需要重写此方法。 重写的原因包括:

  • 派生类具有未通过依赖属性公开的数据。

  • 派生类必须执行无法通过重写 CreateInstanceCore()来完成的额外初始化工作。 例如,如果派生类实现 ISupportInitialize,则这适用。

将所有数据存储在依赖属性中且不需要执行额外初始化工作的类不需要重写 GetAsFrozenCore(Freezable)

所有实现必须调用此方法的基实现。 实现应仅执行默认实现不执行的工作。 默认实现生成任何未冻结的冻结对象的深层副本,以及它所包含的所有其他可写本地设置属性的浅表副本。 如果对象具有数据绑定依赖属性,则会复制表达式,但可能不再解析;有关克隆数据绑定对象的详细信息,请参阅 Freezable 对象概述。 如果对象具有动画处理的依赖属性,则会复制这些属性的基 (非动画) 值。 不会复制动画。

请注意,不会复制未设置的属性,也不会复制只读属性。

如果重写此方法,则必须调用基实现。

无需在复制值时使用 Freeze() 值。 结果在返回之前冻结 GetAsFrozen()

适用于

另请参阅