Freezable.GetCurrentValueAsFrozenCore(Freezable) 方法

定義

將目前執行個體設為所指定 Freezable 的凍結複本。 如果物件具有動畫相依性屬性,則會複製其目前的動畫值。

C#
protected virtual void GetCurrentValueAsFrozenCore(System.Windows.Freezable sourceFreezable);

參數

sourceFreezable
Freezable

要複製和凍結的 Freezable

備註

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

給繼承者的注意事項

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

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

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

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

所有實作都呼叫此方法的基底實作非常重要。 實作應該只會執行預設實作未執行的工作。 預設實作會使用 CreateInstance() 方法建立新的 Freezable ,並建立所有其他可寫入、本機設定屬性的深層凍結複本和淺層複本。 如果物件具有資料系結相依性屬性,則會複製資料系結,但可能不再解析;如需複製資料系結物件的詳細資訊,請參閱 Freezable 物件概觀。 如果物件具有動畫相依性屬性,則會複製這些屬性的目前動畫值,但動畫則不會。

這個預設實作不會複製 中的 Freezable 唯讀相依性屬性。

如果您覆寫這個方法,則必須呼叫基底實作。

您不需要 Freeze() 複製值。 傳回之前,結果會凍結 GetAsFrozen()

適用於

產品 版本
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

另請參閱