如何处理frozon control (WPF FAQ http://www.syncfusion.com/faq/wpf/default.aspx#60)

将一个control freeze后能够提高其性能。

If you try to modify a frozen Freezable object, it throws an 'Invalid Operation' Exception. To avoid throwing this exception, use the "IsFrozen" property of the Freezable object to determine whether it is frozen.

 

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;
 

 

posted on 2008-10-20 15:22  oyl  阅读(198)  评论(0编辑  收藏  举报

导航