Freezable.CloneCurrentValueCore(Freezable) 方法

定義

使用目前的屬性值,讓執行個體成為指定之 Freezable 的可修改複本 (深層複本)。

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

參數

sourceFreezable
Freezable

要複製的 Freezable

備註

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

給繼承者的注意事項

如果您衍生自 Freezable ,您可能需要覆寫此方法。 覆寫的原因包括:

  • 衍生類別的資料不會透過相依性屬性公開。

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

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

所有實作都呼叫此方法的基底實作非常重要。 實作應該只會執行預設實作未執行的工作。 預設實作會建立所有可寫入本機設定屬性的深層複本。 如果物件包含具有運算式的相依性屬性, (例如資料系結) ,則會複製運算式的目前值,但不會複製運算式本身。

如果物件具有動畫相依性屬性,則會複製這些屬性的目前動畫值,但動畫則不會。

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

下列清單摘要說明這個方法的預期行為。

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

  • 不會複製 Unset 和唯讀屬性。

  • 如果屬性是動畫的,則會複製其目前的值,但動畫本身則不是。

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

  • 複製本身不會凍結。

適用於

另請參閱