DependencyObject.GetLocalValueEnumerator Método

Definição

Cria um enumerador especializado para determinar quais propriedades de dependência têm valores definidos localmente nessa DependencyObject.Creates a specialized enumerator for determining which dependency properties have locally set values on this DependencyObject.

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

Retornos

Um enumerador do valor de local especializado.A specialized local value enumerator.

Exemplos

O exemplo a seguir itera todas as propriedades que têm valores locais definidos em um objeto e, em seguida, chama ClearValue para limpar os valores de cada propriedade.The following example iterates all properties that have local values set on an object, then calls ClearValue to clear the values of each such property.

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

Comentários

Um valor local é qualquer valor de propriedade de dependência definido por SetValue, em oposição a outros aspectos do sistema de propriedades.A local value is any dependency property value that was set by SetValue, as opposed to other aspects of the property system.

O LocalValueEnumerator obtido chamando GetLocalValueEnumerator pode ser usado para enumerar propriedades que têm um valor definido localmente em uma instância DependencyObject.The LocalValueEnumerator obtained by calling GetLocalValueEnumerator can be used to enumerate properties that have a locally set value on a DependencyObject instance. Cada propriedade desse tipo é representada no enumerador por um objeto LocalValueEntry, que tem propriedades que referenciam o DependencyProperty específico e seus valores.Each such property is represented in the enumerator by a LocalValueEntry object, which has properties that reference the specific DependencyProperty and its values. Essa técnica de enumeração sobre os valores definidos localmente pode ser usada para otimização ou para outro tratamento de valores locais, como para determinar quais valores de propriedade de um DependencyObject seriam alterados se eles fossem limpos.This technique of enumerating over the locally set values can be used for optimization or for other handling of local values, such as to determine which property values of a DependencyObject would change if they were cleared.

Importante

O LocalValueEnumerator retornado pode conter registros LocalValueEntry para propriedades de dependência que são somente leitura, ou propriedades de dependência, em que os valores são calculados pelo sistema de propriedades.The returned LocalValueEnumerator might contain LocalValueEntry records for dependency properties that are read-only, or dependency properties where values are calculated by the property system. Por exemplo, um elemento do Visual Framework que tem uma largura estabelecida pelo layout relatará um valor local para ActualWidth.For example, a visual framework element that has an established width through layout will report a local value for ActualWidth. Se você estiver obtendo valores locais a fim de redefini-los, verifique o valor ReadOnly no identificador de propriedade de cada LocalValueEntry para verificar se o DependencyProperty em questão não é somente leitura.If you are getting local values in order to reset them, check the ReadOnly value on the property identifier of each LocalValueEntry to verify that the DependencyProperty in question is not read-only.

Aplica-se a

Veja também