How can I obtain a writable copy of a Read-Only Freezable?

Platform: WPF| Category: Freezable Object

This example shows how to use the Clone method to create a writable copy of a read-only Freezable. After a Freezable object is marked as read-only (‘frozen’), you cannot modify it. However, you can use the ’Clone’ method to create a modifiable clone of the frozen object.

The following example creates a modifiable clone of a frozen ’SolidColorBrush’ object.

[C#]
Button myButton = new Button();
SolidColorBrush myBrush = new SolidColorBrush(Colors.Yellow);
[C#]
// Freezing a Freezable before it provides
// performance improvements if you don’t
// intend on modifying it. 
if (myBrush.CanFreeze)
{
    // Makes the brush unmodifiable.
    myBrush.Freeze();
}

myButton.Background = myBrush;  

// If you need to modify a frozen brush,
// the Clone method can be used to
// create a modifiable copy.
SolidColorBrush myBrushClone = myBrush.Clone();

// Changing myBrushClone does not change
// the color of myButton, because its
// background is still set by myBrush.
myBrushClone.Color = Colors.Red;

// Replacing myBrush with myBrushClone
// makes the button change to red.
myButton.Background = myBrushClone;

Share with

Related FAQs

Couldn't find the FAQs you're looking for?

Please submit your question and answer.