Gewusst wie: Erstellen einer überschreibbaren Kopie eines schreibgeschützten Freezable-Objekts
In diesem Beispiel wird veranschaulicht, wie mithilfe der Clone-Methode eine überschreibbare Kopie eines schreibgeschützten Freezable erstellt werden kann.
Nachdem ein Freezable-Objekt als schreibgeschützt ("fixiert") markiert wurde, kann es nicht geändert werden. Sie können jedoch mithilfe der Clone-Methode einen änderbaren Klon des fixierten Objekts erstellen.
Beispiel
Im folgenden Beispiel wird ein änderbarer Klon eines fixierten SolidColorBrush-Objekts erstellt.
Dim myButton As New Button()
Dim myBrush As New SolidColorBrush(Colors.Yellow)
' Freezing a Freezable before it provides
' performance improvements if you don't
' intend on modifying it.
If myBrush.CanFreeze Then
' Makes the brush unmodifiable.
myBrush.Freeze()
End If
myButton.Background = myBrush
' If you need to modify a frozen brush,
' the Clone method can be used to
' create a modifiable copy.
Dim myBrushClone As SolidColorBrush = myBrush.Clone()
' Changing myBrushClone does not change
' the color of myButton, because its
' background is still set by myBrush.
myBrushClone.Color = Colors.Red
' Replacing myBrush with myBrushClone
' makes the button change to red.
myButton.Background = myBrushClone
Button myButton = new Button();
SolidColorBrush myBrush = new SolidColorBrush(Colors.Yellow);
// Freezing a Freezable before it provides
// performance improvements if you don't
// intend on modifying it.
if (myBrush.CanFreeze)
{
// Makes the brush unmodifiable.
myBrush.Freeze();
}
myButton.Background = myBrush;
// If you need to modify a frozen brush,
// the Clone method can be used to
// create a modifiable copy.
SolidColorBrush myBrushClone = myBrush.Clone();
// Changing myBrushClone does not change
// the color of myButton, because its
// background is still set by myBrush.
myBrushClone.Color = Colors.Red;
// Replacing myBrush with myBrushClone
// makes the button change to red.
myButton.Background = myBrushClone;
Weitere Informationen über Freezable-Objekte finden Sie unter Übersicht über Freezable-Objekte.
Siehe auch
Referenz
Konzepte
Übersicht über Freezable-Objekte