Condividi tramite


Procedura: ripristinare il valore predefinito di una proprietà Dependency

Aggiornamento: novembre 2007

In questo esempio viene illustrato come utilizzare il metodo ClearValue per ripristinare il valore predefinito di una proprietà di dipendenza.

Esempio

Nell'esempio seguente vengono cancellati i valori di proprietà impostati localmente per diversi tipi di elementi Shape. Il metodo RestoreDefaultProperties definito dall'utente mostrato nell'esempio cerca e cancella tutte le proprietà di dipendenza di lettura/scrittura che sono impostate localmente. I valori locali per le proprietà sono stati stabiliti tramite la sintassi degli attributi XAML in una pagina XAML caricata (non mostrata). Dopo l'esecuzione di RestoreDefaultProperties, il valore effettivo per ogni proprietà è determinato dal valore Setter contenuto nello stile per tale tipo Shape.

Si noti che il valore predefinito di una proprietà di dipendenza non è necessariamente DefaultValue stabilito nei metadati per tale proprietà di dipendenza. Altri fattori sono ancora attivi e possono diventare l'origine per il valore effettivo della proprietà dopo la cancellazione del valore locale.

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

Per l'esempio completo, vedere Esempio di ripristino dei valori predefiniti. L'esempio completo da cui deriva questo esempio include gli stili impliciti per ogni tipo Shape. Dopo che la chiamata a ClearValue cancella il valore locale, lo stile per ogni Shape determina i valori per le proprietà specifiche che sono state cancellate. La proprietà DefaultValue basata su metadati di queste proprietà opera con una precedenza di determinazione dei valori inferiore rispetto agli stili, quindi la proprietà DefaultValue non viene utilizzata dopo la cancellazione dei valori. Per le ulteriori informazioni sulla precedenza dei valori per le proprietà di dipendenza, vedere Precedenza del valore della proprietà di dipendenza. Eseguire Esempio di ripristino dei valori predefiniti per vedere in che modo lo stile applica il valore.

Vedere anche

Attività

Esempio di ripristino dei valori predefiniti

Concetti

Precedenza del valore della proprietà di dipendenza

Riferimenti

DefaultValue

Altre risorse

Procedure relative alle proprietà

Esempi di proprietà