DependencyObject.GetLocalValueEnumerator Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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.