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。
注解
和CloneCloneCurrentValue方法生成冻结Freezable对象的可修改克隆(方法还克隆Freezable未冻结的对象)。 克隆实际上是当前对象的深层副本。
下表总结了方法和CloneCloneCurrentValue方法之间的差异。
| Action | 克隆方法行为 | CloneCurrentValue 方法行为 |
|---|---|---|
| 复制具有表达式的依赖属性 | 复制表达式,但可能不再解析。 有关详细信息,请参阅 冻结对象概述。 | 复制表达式的当前值,但不复制表达式本身。 |
| 复制动画依赖属性 | 将复制属性的基值(非动画)。 不会复制动画。 | 复制属性的当前动画值。 不会复制动画。 |
请注意,未设置属性不会复制。 如果未设置属性的默认值为冻结 Freezable,该属性值将保留在其他可修改的克隆中。
在线程之间移动可冻结
此方法可用于在线程之间移动 Freezable 。 首先,通过调用其Freezable方法使Freeze不可修改。 现在,另一个线程可以访问 Freezable 它可访问的本地 Clone 线程。
继承者说明
此方法用于 CloneCore(Freezable) 生成克隆。 若要修改派生类中此方法的行为,请重写该方法 CloneCore(Freezable) 。