Freezable.CloneCurrentValue 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
使用 Freezable 的当前值创建其可修改复本(深层副本)。
public:
System::Windows::Freezable ^ CloneCurrentValue();
public System.Windows.Freezable CloneCurrentValue ();
member this.CloneCurrentValue : unit -> System.Windows.Freezable
Public Function CloneCurrentValue () As Freezable
返回
当前对象的可修改复本。 即使源的 IsFrozen 属性为 false
,所克隆对象的 IsFrozen 属性也为 true
。
注解
这些 Clone 方法和 CloneCurrentValue 方法会生成冻结对象的可修改克隆 Freezable , (这些方法还会克隆 Freezable 未冻结) 的对象。 克隆实际上是当前对象的深层副本。
下表总结了方法之间的差异CloneCloneCurrentValue。
操作 | 克隆方法行为 | CloneCurrentValue 方法行为 |
---|---|---|
复制具有表达式的依赖属性 | 复制表达式,但可能不再解析。 有关详细信息,请参阅 Freezable 对象概述。 | 复制表达式的当前值,但不复制表达式本身。 |
复制动画依赖属性 | 复制属性的基本 (非动画) 值。 不会复制动画。 | 复制属性的当前动画值。 不会复制动画。 |
请注意,未设置属性不会复制。 如果 unset 属性具有一个已冻结 Freezable的默认值,该属性值将保留在其他可修改的克隆中。
在线程之间移动可冻结
此方法可用于在线程之间移动 Freezable 。 首先,使用其Freeze方法使Freezable不可修改。 现在,另一个线程可以访问 Freezable 并创建可访问的本地克隆。
继承者说明
此方法使用 CloneCurrentValueCore(Freezable) 该方法生成克隆; Freezable 重写 CloneCurrentValueCore(Freezable) 的实现者必须确保在创建时不会冻结副本。