개체에 변경이 발생하면 Change 이벤트가 트리거됩니다.
Freezable은 더 이상 변경이 발생하지 않도록 고정 항목으로 정의하여 애플리케이션 성능을 향상시키는 데 도움이 되는 특수 기능을 제공합니다.
아래와 같이 Brush의 Freeze() 메서드를 호출하면 더 이상 변경을 허용하지 않으므로 Brush.Color가 변경될 때 오류가 발생합니다.
Button myButton = new Button();
SolidColorBrush myBrush = new SolidColorBrush(Colors.Yellow);
if (myBrush.CanFreeze)
{
// Makes the brush unmodifiable.
myBrush.Freeze();
}
myButton.Background = myBrush;
try
{
// Throws an InvalidOperationException, because the brush is frozen.
myBrush.Color = Colors.Red;
}
catch(InvalidOperationException ex)
{
MessageBox.Show("Invalid operation: " + ex.ToString());
}
freezable은 그래픽 개체의 그리기 속도를 높이는 데 사용됩니다.
특정 개체가 정지되면 그래픽 시스템은 더 이상 해당 개체에 대해 걱정할 필요가 없으므로 성능이 향상됩니다.