如何:获取只读 Freezable 的可写副本

更新:2007 年 11 月

此示例显示如何使用 Clone 方法来创建只读 Freezable 的可写副本。

在将 Freezable 对象标记为只读(“冻结”)后,便无法对其进行修改。但是,可以使用 Clone 方法来创建冻结对象的可修改克隆。

示例

以下示例将创建冻结 SolidColorBrush 对象的可修改克隆。

Button myButton = new Button();
SolidColorBrush myBrush = new SolidColorBrush(Colors.Yellow);

// 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;

有关 Freezable 对象的更多信息,请参见Freezable 对象概述

请参见

概念

Freezable 对象概述

参考

Freezable

CloneCurrentValue

其他资源

基元素帮助主题