Freezable.GetAsFrozen 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
使用基底 (非動畫) 屬性值,建立 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 凍結。
GetAsFrozen和 GetCurrentValueAsFrozen 方法可以改善複製效能,因為它們不會複製 Freezable 已經凍結的子物件;它們只會依參考複製它們。
下表摘要說明 和 GetCurrentValueAsFrozen 方法之間的差異 GetAsFrozen 。
動作 | GetAsFrozen 方法行為 | GetCurrentValueAsFrozen 方法行為 |
---|---|---|
複製具有運算式的相依性屬性 | 方法會擲回 , InvalidOperationException 因為它無法 Freeze 傳回 屬性。 | 會複製運算式的目前值,但不會複製運算式本身。 |
複製動畫相依性屬性 | 複製屬性的基底 (非動畫) 值。 不會複製動畫。 | 屬性目前的動畫值會複製。 不會複製動畫。 |
請注意,不會複製未設定屬性,也不會複製唯讀屬性。
若要建立未凍結的 Freezable 複本,請使用 Clone 方法。
給繼承者的注意事項
這個方法會使用虛擬 GetAsFrozenCore(Freezable) 方法來產生複製品。