Freezable.GetCurrentValueAsFrozen Method
Definition
Creates a frozen copy of the Freezable using current property values. Because the copy is frozen, any frozen sub-objects are copied by reference.
public:
System::Windows::Freezable ^ GetCurrentValueAsFrozen();
public System.Windows.Freezable GetCurrentValueAsFrozen ();
member this.GetCurrentValueAsFrozen : unit -> System.Windows.Freezable
Public Function GetCurrentValueAsFrozen () As Freezable
Returns
A frozen copy of the Freezable. The copy's IsFrozen property is set to true
.
Remarks
Using this method is similar to creating a copy using the CloneCurrentValue 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 CloneCurrentValue method.
Notes to Inheritors
This method uses the virtual GetCurrentValueAsFrozenCore(Freezable) method to produce the clone.