如何:确定 Freezable 是否处于冻结状态

更新:2007 年 11 月

此示例演示如何确定 Freezable 对象是否处于冻结状态。如果尝试修改冻结的 Freezable 对象,该对象将引发 InvalidOperationException。为了避免引发此异常,请使用 Freezable 对象的 IsFrozen 属性来确定对象是否处于冻结状态。

示例

下面的示例将冻结 SolidColorBrush,然后通过使用 IsFrozen 属性对其进行测试,以确定它是否处于冻结状态。

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

if (myBrush.CanFreeze)
{
    // Makes the brush unmodifiable.
    myBrush.Freeze();
}            

myButton.Background = myBrush;


if (myBrush.IsFrozen) // Evaluates to true.
{
    // If the brush is frozen, create a clone and
    // modify the clone.
    SolidColorBrush myBrushClone = myBrush.Clone();
    myBrushClone.Color = Colors.Red;
    myButton.Background = myBrushClone;
}
else
{
    // If the brush is not frozen,
    // it can be modified directly.
    myBrush.Color = Colors.Red;
}


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

请参见

概念

Freezable 对象概述

参考

Freezable

IsFrozen

其他资源

基元素帮助主题