Freezable.GetAsFrozen 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
使用基(未经过动画处理的)属性值创建 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 。
GetAsFrozen和 GetCurrentValueAsFrozen 方法可以提高复制性能,因为它们不会克隆Freezable已冻结的子对象;它们仅通过引用复制它们。
下表总结了 和 GetCurrentValueAsFrozen 方法之间的差异GetAsFrozen。
操作 | GetAsFrozen 方法行为 | GetCurrentValueAsFrozen 方法行为 |
---|---|---|
复制具有表达式的依赖属性 | 方法引发 , InvalidOperationException 因为它不能 Freeze 属性。 | 复制表达式的当前值,但不复制表达式本身。 |
复制动画依赖属性 | 复制属性的基 (非动画) 值。 不会复制动画。 | 复制属性的当前动画值。 不会复制动画。 |
请注意,未设置的属性不会复制,也不会复制只读属性。
若要创建未冻结 的副本 Freezable ,请使用 Clone 方法。
继承者说明
此方法使用虚拟 GetAsFrozenCore(Freezable) 方法生成克隆。