Freezable.GetAsFrozen 方法

定義

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

public:
 System::Windows::Freezable ^ GetAsFrozen();
public System.Windows.Freezable GetAsFrozen ();
member this.GetAsFrozen : unit -> System.Windows.Freezable
Public Function GetAsFrozen () As Freezable

傳回

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

例外狀況

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

備註

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

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

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

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

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

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

給繼承者的注意事項

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

適用於

另請參閱