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