DependencyObject.GetLocalValueEnumerator Método

Definição

Cria um enumerador especializado para determinar quais as propriedades de dependência que têm valores localmente definidos neste DependencyObject.

public:
 System::Windows::LocalValueEnumerator GetLocalValueEnumerator();
public System.Windows.LocalValueEnumerator GetLocalValueEnumerator();
member this.GetLocalValueEnumerator : unit -> System.Windows.LocalValueEnumerator
Public Function GetLocalValueEnumerator () As LocalValueEnumerator

Devoluções

Um enumerador de valor local especializado.

Exemplos

O exemplo seguinte itera todas as propriedades que têm valores locais definidos num objeto, depois chama ClearValue para limpar os valores de cada uma dessas propriedades.

void RestoreDefaultProperties(object sender, RoutedEventArgs e)
{
    UIElementCollection uic = Sandbox.Children;
    foreach (Shape uie in uic)
    {
        LocalValueEnumerator locallySetProperties = uie.GetLocalValueEnumerator();
        while (locallySetProperties.MoveNext())
        {
            DependencyProperty propertyToClear = locallySetProperties.Current.Property;
            if (!propertyToClear.ReadOnly) { uie.ClearValue(propertyToClear); }
        }
    }
}
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

Observações

Um valor local é qualquer valor de propriedade de dependência que foi definido por SetValue, em oposição a outros aspetos do sistema de propriedades.

O LocalValueEnumerator obtido ao chamar GetLocalValueEnumerator pode ser usado para enumerar propriedades que têm um valor localmente definido numa DependencyObject instância. Cada uma dessas propriedades é representada no enumerador por um LocalValueEntry objeto, que possui propriedades que referenciam o específico DependencyProperty e os seus valores. Esta técnica de enumeração sobre os valores localmente definidos pode ser usada para otimização ou para outro manuseamento de valores locais, como determinar quais os valores das propriedades de um DependencyObject que mudariam se fossem eliminados.

Importante

Os devolvidos LocalValueEnumerator podem conter LocalValueEntry registos de propriedades de dependência que são apenas leitura, ou propriedades de dependência onde os valores são calculados pelo sistema de propriedades. Por exemplo, um elemento de estrutura visual que tenha uma largura estabelecida através do layout irá reportar um valor local para ActualWidth. Se estiver a obter valores locais para os reiniciar, verifique o ReadOnly valor no identificador de propriedade de cada LocalValueEntry um para verificar se o DependencyProperty valor em questão não é apenas leitura.

Aplica-se a

Ver também