Partilhar via


Como: Determinar se um congelável está congelado

Este exemplo mostra como determinar se um objeto Freezable está congelado. Se você tentar modificar um objeto Freezable congelado, ele lançará um InvalidOperationException. Para evitar lançar essa exceção, use a propriedade IsFrozen do objeto Freezable para determinar se ele está congelado.

Exemplo

O exemplo a seguir congela um SolidColorBrush e, em seguida, testa-o usando a propriedade IsFrozen para determinar se ele está congelado.


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


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


Para obter mais informações sobre Freezable Objetos, consulte o Visão Geral de Objetos Congeláveis.

Ver também