Freezable.Clone 方法

定义

创建 Freezable 的可修改克隆,以制作该对象值的深层副本。 在复制此对象的依赖属性时,此方法会复制表达式(可能不再解析),但不复制动画或其当前值。

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

返回

Freezable

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

注解

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

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

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

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

在线程之间移动可冻结

此方法可用于在线程之间移动 Freezable 。 首先,通过调用方法Freeze使Freezable不可修改。 现在,另一个线程可以访问 Freezable 它可以访问的本地 Clone 线程。

继承者说明

此方法用于 CloneCore(Freezable) 生成克隆。 若要在派生类中修改此方法的行为,请重写该方法 CloneCore(Freezable)

适用于

另请参阅