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