Como: Restore the Default Value of a Dependency Property
Este exemplo mostra como usar o método ClearValue para redefinir um valor de dependency property para o seu valor padrão.
Exemplo
O exemplo a seguir limpa os valores de propriedades definidos localmente de vários tipos de elementos Shape. O método RestoreDefaultProperties definido pelo usuário mostrado no exemplo localiza todas as propriedades de dependência de leitura/gravação que são definidas localmente e limpa cada uma delas. Valores locais para as propriedades foram estabelecidas (usando a sintaxe do atributo XAML) em uma página XAML carregada (não mostrada). Após a execução de RestoreDefaultProperties, o valor efetivo para cada propriedade é determinado pelo valor de Setter que está contido no estilo para o tipo de Shape.
Observe que o valor padrão para uma propriedade de dependência não é necessariamente o DefaultValue que é estabelecida nos metadados para tal propriedade de dependência. Outros fatores ainda estão ativos, e eles podem se tornar a fonte para o valor efetivo da propriedade após o valor local ser desmarcado.
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); }
}
}
}
For the complete sample, see Restaurando o exemplo de valores padrão. O exemplo completo do qual esse exemplo é derivado inclui estilos implícitos para cada tipo Shape. Após a chamada ClearValue limpar o valor local, o estilo de cada Shape determina valores de propriedade para as propriedades específicas que foram limpas. O DefaultValue baseado em metadados dessas propriedades opera em uma precedência determinada por valor menor do que os estilos usam, de forma que DefaultValue não é usada mesmo após os valores serem desmarcados. Para obter mais informações sobre precedência de valor das propriedades de dependência, consulte Precedência de valores de propriedade de dependência. Certifique-se de executar o Restaurando o exemplo de valores padrão para ver como o estilo aplica o valor.
Consulte também
Tarefas
Restaurando o exemplo de valores padrão
Conceitos
Precedência de valores de propriedade de dependência