Практическое руководство. Определение фиксации объекта Freezable
В этом примере показано, как определить, является ли Freezable объект заморожен. Если попытаться изменить зафиксированный Freezable объекта, он выдает InvalidOperationException. Чтобы избежать возникновения этого исключения, используйте IsFrozen свойство Freezable объектом, чтобы определить, зафиксирован ли он.
Пример
В следующем примере фиксируется 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 Общие сведения об объектах.