Gewusst wie: Wiederherstellen des Standardwerts einer Abhängigkeitseigenschaft
Aktualisiert: November 2007
In diesem Beispiel wird veranschaulicht, wie mithilfe der ClearValue-Methode ein Abhängigkeitseigenschaft-Wert auf seinen Standardwert zurückgesetzt werden kann.
Beispiel
Im folgenden Beispiel werden die lokal festgelegten Eigenschaftenwerte verschiedener Shape-Elementtypen gelöscht. Mit der im Beispiel dargestellten benutzerdefinierten RestoreDefaultProperties-Methode werden sämtliche lokal festgelegten Lese-/Schreib-Abhängigkeitseigenschaften ermittelt und gelöscht. Die lokalen Werte für die Eigenschaften wurden auf einer geladenen XAML-Seite (nicht abgebildet) mit der XAML-Attributsyntax festgelegt. Nach dem Ausführen von RestoreDefaultProperties wird der effektive Wert jeder Eigenschaft durch den Setter-Wert bestimmt, der im Stil für diesen Shape-Typ enthalten ist.
Der Standardwert einer Abhängigkeitseigenschaft ist nicht unbedingt der DefaultValue-Wert, der in den Metadaten der Abhängigkeitseigenschaft festgelegt ist. Andere Faktoren sind weiterhin aktiv und können, nachdem der lokale Wert gelöscht wurde, zur Quelle für den effektiven Eigenschaftenwert werden.
Private Sub RestoreDefaultProperties(ByVal sender As Object, ByVal e As RoutedEventArgs)
Dim uic As UIElementCollection = Sandbox.Children
For Each uie As Shape In uic
Dim locallySetProperties As LocalValueEnumerator = uie.GetLocalValueEnumerator()
While locallySetProperties.MoveNext()
Dim propertyToClear As DependencyProperty = locallySetProperties.Current.Property
If Not propertyToClear.ReadOnly Then
uie.ClearValue(propertyToClear)
End If
End While
Next
End Sub
void RestoreDefaultProperties(object sender, RoutedEventArgs e)
{
UIElementCollection uic = Sandbox.Children;
foreach (Shape uie in uic)
{
LocalValueEnumerator locallySetProperties = uie.GetLocalValueEnumerator();
while (locallySetProperties.MoveNext())
{
DependencyProperty propertyToClear = (DependencyProperty)locallySetProperties.Current.Property;
if (!propertyToClear.ReadOnly) { uie.ClearValue(propertyToClear); }
}
}
}
Das vollständige Beispiel finden Sie unter Beispiel für das Wiederherstellen von Standardwerten. Das vollständige Beispiel, aus dem dieses Beispiel stammt, enthält implizite Stile für jeden Shape-Typ. Nach dem Löschen der lokalen Werte durch den Aufruf von ClearValue werden die Eigenschaftenwerte für die einzelnen, gelöschten Eigenschaften durch den Stil des entsprechenden Shape-Typs festgelegt. Der auf Metadaten basierte DefaultValue-Wert dieser Eigenschaften weist hinsichtlich der Wertbestimmung eine niedrigere Priorität als die Stile auf. Der DefaultValue-Wert wird daher auch dann nicht verwendet, wenn die Werte gelöscht wurden. Weitere Informationen zur Wertpriorität für Abhängigkeitseigenschaften finden Sie unter Priorität von Abhängigkeitseigenschaftenwerten. Sie sollten zur Veranschaulichung der Anwendung des Werts durch den Stil Beispiel für das Wiederherstellen von Standardwerten ausführen.
Siehe auch
Aufgaben
Beispiel für das Wiederherstellen von Standardwerten
Konzepte
Priorität von Abhängigkeitseigenschaftenwerten