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

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

示例

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


            Dim myButton As New Button()
            Dim myBrush As New SolidColorBrush(Colors.Yellow)

            If myBrush.CanFreeze Then
                ' Makes the brush unmodifiable.
                myBrush.Freeze()
            End If

            myButton.Background = myBrush


            If myBrush.IsFrozen Then ' Evaluates to true.
                ' If the brush is frozen, create a clone and
                ' modify the clone.
                Dim myBrushClone As SolidColorBrush = 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
            End If



            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

IsFrozen

概念

Freezable 对象概述

其他资源

基元素帮助主题