Freezable.GetAsFrozen 方法

定义

使用基(未经过动画处理的)属性值创建 Freezable 的冻结副本。 由于副本已冻结,因此将通过引用复制任何冻结的子对象。

public:
 System::Windows::Freezable ^ GetAsFrozen();
public System.Windows.Freezable GetAsFrozen ();
member this.GetAsFrozen : unit -> System.Windows.Freezable
Public Function GetAsFrozen () As Freezable

返回

Freezable 的冻结副本。 副本的 IsFrozen 属性设置为 true

例外

无法冻结此 Freezable,因为它包含表达式或经过动画处理的属性。

注解

在调用此方法之前, CanFreeze 应检查 属性,以 Freezable 验证 是否可以冻结 。 使用此方法类似于使用 创建副本, Clone 然后使用 方法冻结副本 Freeze

GetAsFrozenGetCurrentValueAsFrozen 方法可以提高复制性能,因为它们不会克隆Freezable已冻结的子对象;它们仅通过引用复制它们。

下表总结了 和 GetCurrentValueAsFrozen 方法之间的差异GetAsFrozen

操作 GetAsFrozen 方法行为 GetCurrentValueAsFrozen 方法行为
复制具有表达式的依赖属性 方法引发 , InvalidOperationException 因为它不能 Freeze 属性。 复制表达式的当前值,但不复制表达式本身。
复制动画依赖属性 复制属性的基 (非动画) 值。 不会复制动画。 复制属性的当前动画值。 不会复制动画。

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

若要创建未冻结 的副本 Freezable ,请使用 Clone 方法。

继承者说明

此方法使用虚拟 GetAsFrozenCore(Freezable) 方法生成克隆。

适用于

另请参阅