Freezable.GetAsFrozen Metoda

Definicja

Tworzy zamrożoną kopię Freezableprzy użyciu podstawowych (nieanimowanych) wartości właściwości.Creates a frozen copy of the Freezable, using base (non-animated) property values. Ponieważ kopia jest zamrożona, wszelkie zamrożone obiekty podrzędne są kopiowane przez odwołanie.Because the copy is frozen, any frozen sub-objects are copied by reference.

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

Zwraca

Zamrożona kopia Freezable.A frozen copy of the Freezable. Właściwość IsFrozen kopii jest ustawiona na true.The copy's IsFrozen property is set to true.

Wyjątki

Freezable nie może być zamrożona, ponieważ zawiera wyrażenia lub właściwości animowane.The Freezable cannot be frozen because it contains expressions or animated properties.

Uwagi

Przed wywołaniem tej metody należy sprawdzić Właściwość CanFreeze, aby sprawdzić, czy Freezable można zablokować.You should check the CanFreeze property before calling this method to verify that the Freezable can be frozen. Użycie tej metody jest podobne do tworzenia kopii przy użyciu Clone, a następnie zamrażania przy użyciu metody Freeze.Using this method is similar to creating a copy using the Clone and then freezing it with the Freeze method.

Metody GetAsFrozen i GetCurrentValueAsFrozen mogą zwiększyć wydajność kopiowania, ponieważ nie powielają Freezable obiektów podrzędnych, które są już zamrożone; są one kopiowane tylko przez odwołanie.The GetAsFrozen and GetCurrentValueAsFrozen methods can improve copying performance because they do not clone Freezable sub-objects that are already frozen; they only copy them by reference.

Poniższa tabela zawiera podsumowanie różnic między metodami GetAsFrozen i GetCurrentValueAsFrozen.The following table summarizes the differences between the GetAsFrozen and GetCurrentValueAsFrozen methods.

AkcjaAction Zachowanie metody GetAsFrozenGetAsFrozen method behavior Zachowanie metody GetCurrentValueAsFrozenGetCurrentValueAsFrozen method behavior
Kopiowanie właściwości zależności, która ma wyrażenieCopying a dependency property that has an expression Metoda zgłasza InvalidOperationException, ponieważ nie może Freeze właściwości.The method throws an InvalidOperationException because it cannot Freeze the property. Bieżąca wartość wyrażenia jest kopiowana, ale nie sama wyrażenie.The current value of the expression is copied, but not the expression itself.
Kopiowanie właściwości zależności animowanejCopying an animated dependency property Wartość podstawowa (nieanimowana) właściwości jest kopiowana.The property's base (non-animated) value is copied. Animacje nie są kopiowane.Animations are not copied. Bieżąca animowana wartość właściwości jest kopiowana.The property's current animated value is copied. Animacje nie są kopiowane.Animations are not copied.

Należy zauważyć, że właściwości nie są kopiowane, ani nie są właściwościami tylko do odczytu.Note that unset properties are not copied, nor are read-only properties.

Aby utworzyć kopię Freezable, która nie jest zamrożona, użyj metody Clone.To create a copy of the Freezable that is not frozen, use the Clone method.

Uwagi dotyczące dziedziczenia

Ta metoda używa wirtualnej metody GetAsFrozenCore(Freezable), aby utworzyć klon.This method uses the virtual GetAsFrozenCore(Freezable) method to produce the clone.

Dotyczy

Zobacz też