Freigeben über


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

Freezable

CloneCurrentValue

Konzepte

Übersicht über Freezable-Objekte

Weitere Ressourcen

Gewusst-wie-Themen zu Basiselementen