Freezable.GetAsFrozen 方法

定義

使用基底 (非動畫) 屬性值,建立 Freezable 的凍結複本。 因為複本已凍結,所以會以傳址方式複製任何凍結子物件。

C#
public System.Windows.Freezable GetAsFrozen();

傳回

Freezable 的凍結複本。 複本的 IsFrozen 屬性是設定為 true

例外狀況

Freezable 包含運算式或動畫屬性,因此無法予以凍結。

備註

您應該先檢查 屬性, CanFreeze 再呼叫這個方法,以確認 Freezable 可以凍結 。 使用此方法類似于使用 Clone 建立複本,然後使用 方法將它 Freeze 凍結。

GetAsFrozenGetCurrentValueAsFrozen 方法可以改善複製效能,因為它們不會複製 Freezable 已經凍結的子物件;它們只會依參考複製它們。

下表摘要說明 和 GetCurrentValueAsFrozen 方法之間的差異 GetAsFrozen

動作 GetAsFrozen 方法行為 GetCurrentValueAsFrozen 方法行為
複製具有運算式的相依性屬性 方法會擲回 , InvalidOperationException 因為它無法 Freeze 傳回 屬性。 會複製運算式的目前值,但不會複製運算式本身。
複製動畫相依性屬性 複製屬性的基底 (非動畫) 值。 不會複製動畫。 屬性目前的動畫值會複製。 不會複製動畫。

請注意,不會複製未設定屬性,也不會複製唯讀屬性。

若要建立未凍結的 Freezable 複本,請使用 Clone 方法。

給繼承者的注意事項

這個方法會使用虛擬 GetAsFrozenCore(Freezable) 方法來產生複製品。

適用於

產品 版本
.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

另請參閱