Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. |
Übersetzung
Original
|
Freezable.IsFrozen-Eigenschaft
Ruft einen Wert ab, der angibt, ob das Objekt gegenwärtig änderbar ist.
Assembly: WindowsBase (in WindowsBase.dll)
Der Versuch, ein Objekt zu ändern, wenn seine IsFrozen-Eigenschaft true lautet, löst eine InvalidOperationException aus.
Diese Eigenschaft aus der Objektmodellperspektive schreibgeschützt. In einigen Dokumentationen zum Freezable-Verhalten wird möglicherweise die Formulierung "legt IsFrozen auf true fest" o. ä. beim Beschreiben des Verhaltens anderer Methoden von Freezable verwendet. Dieses Verhalten tritt jedoch intern in den Klasseninstanzen auf, wenn Methoden der Instanz die privaten Variablen in der abstrakten Klasse ändern. Zum Festlegen des Werts für diese Eigenschaft sollten Sie Freeze aufrufen. Dies ist im Grunde ein einmaliger Vorgang zum Ändern der IsFrozen-Eigenschaft vom anfänglichen Standardzustand false in den Zustand true. Es gibt keine Möglichkeit, um den Wert auf false zurückzusetzen. Stattdessen könnten Sie jede vom Original erstellte tiefe Kopie ändern (siehe Clone-Methode). Dies ist entwurfsbedingt. So sollten sich alle abgeleiteten Klassen verhalten, wenn sie in Fällen angewendet werden, in denen das Freezable-Muster nützlich ist.
This example shows how to determine whether a Freezable object is frozen. If you try to modify a frozen Freezable object, it throws an InvalidOperationException. To avoid throwing this exception, use the IsFrozen property of the Freezable object to determine whether it is frozen.
The following example freezes a SolidColorBrush and then tests it by using the IsFrozen property 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;
}
For more information about Freezable objects, see the Übersicht über Freezable-Objekte.
Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.