Freezable.CloneCore(Freezable) 方法

定義

使用基底 (非動畫) 屬性值,將執行個體設為指定 Freezable 的複製品 (深層複製)。

protected:
 virtual void CloneCore(System::Windows::Freezable ^ sourceFreezable);
protected virtual void CloneCore (System.Windows.Freezable sourceFreezable);
abstract member CloneCore : System.Windows.Freezable -> unit
override this.CloneCore : System.Windows.Freezable -> unit
Protected Overridable Sub CloneCore (sourceFreezable As Freezable)

參數

sourceFreezable
Freezable

要複製的物件。

備註

此方法是由 Clone 方法呼叫,不應該直接從程式碼呼叫,除非在覆寫此方法時呼叫基底實作。 若要建立目前 物件的可修改複本,請呼叫 Clone 而不是直接呼叫此方法。

給繼承者的注意事項

如果您衍生自 Freezable ,您可能需要覆寫這個方法。 覆寫的原因包括下列各項:

  • 您的衍生類別具有未透過相依性屬性公開的資料。

  • 您的衍生類別必須執行無法完成的額外初始化工作,只要覆寫 CreateInstanceCore() 即可。 例如,如果您的衍生類別實作 ISupportInitialize ,就會套用這個方法。

將所有資料儲存在相依性屬性中且不需要執行額外初始化工作的類別不需要覆寫 CloneCore(Freezable)

所有實作都呼叫此方法的基底實作非常重要。 實作應該只會執行預設實作未執行的工作。 預設實作會讓所有可寫入、本機設定屬性的深層複本,包括內部運算式。

如果物件具有資料系結相依性屬性,則會複製運算式,但可能無法再解析。 如需複製資料繫結物件的詳細資訊,請參閱 Freezable 物件概觀。 如果物件具有動畫相依性屬性,則會複製這些屬性的基底 (非動畫) 值。 不會複製動畫。

請注意,不會複製未設定屬性,也不會複製唯讀屬性。 如果這類屬性的預設值是凍結 Freezable 的 ,該屬性值會保留在可修改的複製中。

下列清單摘要說明此方法的預期行為:

  • 產生的複本包含所有 Freezable 子物件的複本。

  • 未設定和唯讀屬性不會複製。

  • 會複製運算式。

  • 這些子物件都不會在建立時凍結。

  • 複製本身不會凍結。

  • 不會複製動畫。

  • 只會複製屬性基底值,而不是目前的動畫值。

適用於

另請參閱