Freezable::GetAsFrozen Method ()
Creates a frozen copy of the Freezable, using base (non-animated) property values. Because the copy is frozen, any frozen sub-objects are copied by reference.
Assembly: WindowsBase (in WindowsBase.dll)
| Exception | Condition |
|---|---|
| InvalidOperationException | The Freezable cannot be frozen because it contains expressions or animated properties. |
You should check the CanFreeze property before calling this method to verify that the Freezable can be frozen. Using this method is similar to creating a copy using the Clone and then freezing it with the Freeze method.
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.
The following table summarizes the differences between the GetAsFrozen and GetCurrentValueAsFrozen methods.
Action | GetAsFrozen method behavior | GetCurrentValueAsFrozen method behavior |
|---|---|---|
Copying a dependency property that has an expression | The method throws an InvalidOperationException because it cannot Freeze the property. | The current value of the expression is copied, but not the expression itself. |
Copying an animated dependency property | The property's base (non-animated) value is copied. Animations are not copied. | The property's current animated value is copied. Animations are not copied. |
Note that unset properties are not copied, nor are read-only properties.
To create a copy of the Freezable that is not frozen, use the Clone method.
Notes to Inheritors:
This method uses the virtual GetAsFrozenCore method to produce the clone.
Available since 3.0