Share via


Cómo: Restaurar el valor predeterminado de una propiedad de dependencia

Actualización: noviembre 2007

En este ejemplo se muestra cómo utilizar el método ClearValue para restablecer el valor de una propiedad de dependencia en su valor predeterminado.

Ejemplo

En el ejemplo siguiente se borran los valores de propiedad establecidos localmente de varios tipos de elementos Shape. El método RestoreDefaultProperties definido por el usuario que se muestra en este ejemplo busca todas las propiedades de dependencia de lectura y escritura establecidas localmente y borra todas ellas. Los valores locales de las propiedades se han establecido (mediante la sintaxis de atributos de XAML) en una página de XAML cargada (que no se muestra). Después de ejecutar RestoreDefaultProperties, se determina el valor real de cada propiedad mediante el valor de Setter contenido en el estilo correspondiente a ese tipo de elemento Shape.

Observe que el valor predeterminado de una propiedad de dependencia no es necesariamente el valor de DefaultValue establecido en los metadatos de esa propiedad. Existen, además, otros factores activos que pueden convertirse en el origen del valor efectivo de la propiedad una vez borrado el valor local.

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

Para obtener el ejemplo completo, vea Ejemplo Restoring Default Values. El ejemplo completo del que se deriva este ejemplo incluye los estilos implícitos para cada tipo de elemento Shape. Cuando la llamada a ClearValue borra el valor local, el estilo de cada elemento Shape determina los valores de propiedad correspondientes a las propiedades concretas que se han borrado. El valor de DefaultValue basado en metadatos de esas propiedades utiliza una prioridad de determinación de valor más baja que la de los estilos, por lo que no se utiliza DefaultValue ni siquiera una vez borrados los valores. Para obtener más información sobre la prioridad de valor para las propiedades de dependencia, vea Prioridad de los valores de propiedades de dependencia. Asegúrese de ejecutar el Ejemplo Restoring Default Values para ver cómo el estilo aplica el valor.

Vea también

Tareas

Ejemplo Restoring Default Values

Conceptos

Prioridad de los valores de propiedades de dependencia

Referencia

DefaultValue

Otros recursos

Temas "Cómo..." sobre propiedades

Ejemplos de propiedades