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未被凍結的物件)。 這個複製品實際上是當前物件的深度複製。
下表總結了與Clone方法之間的CloneCurrentValue差異。
| Action | 克隆方法的行為 | CloneCurrentValue 方法的行為 |
|---|---|---|
| 複製具有表達式的依賴性質 | 這個表達式會被複製,但可能不再能解決。 如需詳細資訊,請參閱 Freezable 物件概觀。 | 目前的運算式值會被複製,但不會複製表達式本身。 |
| 複製動畫依賴屬性 | 屬性的基礎值(非動畫值)會被複製。 動畫不會被複製。 | 屬性目前的動畫值會被複製。 動畫不會被複製。 |
請注意,未設定的屬性不會被複製。 如果一個未設定屬性的預設值是凍結的 Freezable,該屬性值仍會凍結在可修改的克隆中。
將一個可凍結的裝置移到不同執行緒之間
此方法可用於在執行緒間移動 。Freezable 首先,透過呼叫 Freezable 方法 Freeze 使其不可修改。 現在另一個執行緒可以存取並 Freezable 建立 Clone 一個本地執行緒。
給繼承者的注意事項
此方法用於 CloneCore(Freezable) 製造克隆體。 若要修改此方法在衍生類別中的行為,請覆寫該 CloneCore(Freezable) 方法。