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 未凍結) 的物件。 複製品實際上是目前物件的深層複本。
下表摘要說明 和 CloneCurrentValue 方法之間的差異 Clone 。
動作 | 複製方法行為 | CloneCurrentValue 方法行為 |
---|---|---|
複製具有運算式的相依性屬性 | 運算式已複製,但可能不再解析。 如需詳細資訊,請參閱 Freezable 物件概觀。 | 會複製運算式的目前值,但不會複製運算式本身。 |
複製動畫相依性屬性 | 複製屬性的基底 (非動畫) 值。 不會複製動畫。 | 複製屬性的目前動畫值。 不會複製動畫。 |
請注意,不會複製未設定屬性。 如果 unset 屬性的預設值是凍結 Freezable 的 ,該屬性值會保留在可修改的複製中。
線上程之間移動凍結
這個方法可用於線上程之間移動 Freezable 。 首先,藉由呼叫 其 Freeze 方法,使 Freezable 不可修改。 現在,另一個執行緒可以存取 Freezable ,並建立可存取的本機 Clone 。
給繼承者的注意事項
這個方法會使用 CloneCore(Freezable) 來產生複製品。 若要修改衍生類別中這個方法的行為,請覆寫 CloneCore(Freezable) 方法。