Freezable.CloneCurrentValue 方法

定义

使用 Freezable 的当前值创建其可修改复本(深层副本)。

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

返回

Freezable

当前对象的可修改复本。 即使源的 IsFrozen 属性为 false,所克隆对象的 IsFrozen 属性也为 true

注解

这些 Clone 方法和 CloneCurrentValue 方法会生成冻结对象的可修改克隆 Freezable , (这些方法还会克隆 Freezable 未冻结) 的对象。 克隆实际上是当前对象的深层副本。

下表总结了方法之间的差异CloneCloneCurrentValue

操作 克隆方法行为 CloneCurrentValue 方法行为
复制具有表达式的依赖属性 复制表达式,但可能不再解析。 有关详细信息,请参阅 Freezable 对象概述 复制表达式的当前值,但不复制表达式本身。
复制动画依赖属性 复制属性的基本 (非动画) 值。 不会复制动画。 复制属性的当前动画值。 不会复制动画。

请注意,未设置属性不会复制。 如果 unset 属性具有一个已冻结 Freezable的默认值,该属性值将保留在其他可修改的克隆中。

在线程之间移动可冻结

此方法可用于在线程之间移动 Freezable 。 首先,使用其Freeze方法使Freezable不可修改。 现在,另一个线程可以访问 Freezable 并创建可访问的本地克隆。

继承者说明

此方法使用 CloneCurrentValueCore(Freezable) 该方法生成克隆; Freezable 重写 CloneCurrentValueCore(Freezable) 的实现者必须确保在创建时不会冻结副本。

适用于

另请参阅