Partager via


Comment : restaurer la valeur par défaut d'une propriété de dépendance

Mise à jour : novembre 2007

Cet exemple montre comment utiliser la méthode ClearValue pour rétablir la valeur par défaut d'une propriété de dépendance.

Exemple

L'exemple suivant efface les valeurs de propriété localement définies de plusieurs types d'éléments Shape. La méthode RestoreDefaultProperties, définie par l'utilisateur et présentée dans l'exemple, recherche toutes les propriétés de dépendance en lecture/écriture définies localement et les efface toutes. Les valeurs locales des propriétés ont été établies (à l'aide de la syntaxe d'attribut XAML) dans une page XAML chargée (qui n'est pas présentée). Après l'exécution de RestoreDefaultProperties, la valeur effective de chaque propriété est déterminée par la valeur Setter contenue dans le style pour ce type Shape.

Notez que la valeur par défaut d'une propriété de dépendance n'est pas nécessairement la DefaultValue établie dans les métadonnées pour cette propriété de dépendance. D'autres facteurs sont encore actifs et peuvent devenir la source de la valeur de propriété effective après que la valeur locale ait été effacée.

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); }
        }
    }
}

Pour l'exemple complet, consultez Restauration des valeurs par défaut, exemple. L'exemple complet, dont cet exemple est dérivé, inclut des styles implicites pour chaque type Shape. Une fois que la commande ClearValue a effacé la valeur locale, le style de chaque Shape détermine des valeurs de propriété pour les propriétés spécifiques qui ont été effacées. La DefaultValue de ces propriétés, basée sur des métadonnées, fonctionne à une priorité de détermination de la valeur inférieure à celle des styles ; la DefaultValue n'est donc pas utilisée même après la suppression des valeurs. Pour plus d'informations sur la priorité des valeurs pour les propriétés de dépendance, consultez Priorité de la valeur de propriété de dépendance. Veillez à exécuter Restauration des valeurs par défaut, exemple pour voir comment le style applique la valeur.

Voir aussi

Tâches

Restauration des valeurs par défaut, exemple

Concepts

Priorité de la valeur de propriété de dépendance

Référence

DefaultValue

Autres ressources

Rubriques Comment relatives aux propriétés

Exemples de propriétés