語言

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

傳回

一個可修改的當前物件複製品。 複製物件的 IsFrozen 屬性為 false 偶,若來源 IsFrozen 物件的屬性為 true。

備註

Clone和 CloneCurrentValue 方法會產生可修改的冷凍物件克隆Freezable(這些方法也會克隆Freezable未被凍結的物件)。 這個複製品實際上是當前物件的深度複製。

下表總結了與Clone方法之間的CloneCurrentValue差異。

Action 克隆方法的行為 CloneCurrentValue 方法的行為
複製具有表達式的依賴性質 這個表達式會被複製,但可能不再能解決。 如需詳細資訊,請參閱 Freezable 物件概觀。 目前的運算式值會被複製,但不會複製表達式本身。
複製動畫依賴屬性 屬性的基礎值(非動畫值)會被複製。 動畫不會被複製。 屬性目前的動畫值會被複製。 動畫不會被複製。

請注意,未設定的屬性不會被複製。 如果一個未設定屬性的預設值是凍結的 Freezable,該屬性值仍會凍結在可修改的克隆中。

將一個可凍結的裝置移到不同執行緒之間

此方法可用於在執行緒間移動 。Freezable 首先,透過呼叫 Freezable 方法 Freeze 使其不可修改。 現在另一個執行緒可以存取並 Freezable 建立 Clone 一個本地執行緒。

給繼承者的注意事項

此方法用於 CloneCore(Freezable) 製造克隆體。 若要修改此方法在衍生類別中的行為,請覆寫該 CloneCore(Freezable) 方法。

適用於

另請參閱