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

Referenz

DefaultValue

Weitere Ressourcen

Gewusst-wie-Themen zu Eigenschaften

Beispiele für Eigenschaften