Partilhar via


Navigate Among UI Automation Elements with TreeWalker

Este tópico contém código de exemplo que mostra como navegar entre Elementos usando o TreeWalker a classe.

Exemplo

O exemplo a seguir usa GetParent Para ir até a árvore até encontrar a elemento raiz, ou área de trabalho.O elemento logo abaixo disso é a janela-pai do elemento especificado.





 AutomationElement GetTopLevelWindow(AutomationElement element)
{
    TreeWalker walker = TreeWalker.ControlViewWalker;
    AutomationElement elementParent;
    AutomationElement node = element;
     (node == elementRoot)  node;
    
    {
        elementParent = walker.GetParent(node);
         (elementParent == AutomationElement.RootElement) ;
        node = elementParent;
    }
     ();
     node;
}




      GetTopLevelWindow( element  AutomationElement)  AutomationElement 
         walker  TreeWalker = TreeWalker.ControlViewWalker
         elementParent  AutomationElement
         node  AutomationElement = element
         node = elementRoot 
             node
         
        Do
            elementParent = walker.GetParent(node)
             elementParent = AutomationElement.RootElement 
                 Do
             
            node = elementParent
          
         node

      'GetTopLevelWindow
  'Reader 

O exemplo a seguir usa GetFirstfilho(AutomationElement) e GetNextSibling(Automationelemento, CacheSolicitar) Para criar um TreeView que mostra uma subárvore inteira de Exibir elementos que estão no Controlarar e que são Habilitados.













  WalkEnabledElements(AutomationElement rootElement, TreeNode treeNode)
{
    Condition condition1 =  PropertyCondition(AutomationElement.IsControlElementProperty, );
    Condition condition2 =  PropertyCondition(AutomationElement.IsEnabledProperty, );
    TreeWalker walker =  TreeWalker( AndCondition(condition1, condition2));
    AutomationElement elementNode = walker.GetFirstChild(rootElement);
     (elementNode != )
    {
        TreeNode childTreeNode = treeNode.Nodes.Add(elementNode.Current.ControlType.LocalizedControlType);
        WalkEnabledElements(elementNode, childTreeNode);
        elementNode = walker.GetNextSibling(elementNode);
    }
}












  WalkEnabledElements( rootElement  AutomationElement,  treeNode  TreeNode)
     condition1   PropertyCondition(AutomationElement.IsControlElementProperty, )
     condition2   PropertyCondition(AutomationElement.IsEnabledProperty, )
     walker   TreeWalker( AndCondition(condition1, condition2))
     elementNode  AutomationElement = walker.GetFirstChild(rootElement)
     (elementNode IsNot )
         childTreeNode  TreeNode = treeNode.Nodes.Add(elementNode.Current.ControlType.LocalizedControlType)
        WalkEnabledElements(elementNode, childTreeNode)
        elementNode = walker.GetNextSibling(elementNode)
     

  'WalkEnabledElements

Consulte também

Conceitos

Obtendo elementos da automação interface do usuário