Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Observação
Esta documentação destina-se a desenvolvedores do .NET Framework que desejam usar as classes de automação da interface do usuário gerenciadas definidas no namespace System.Windows.Automation. Para obter as informações mais recentes sobre a automação da interface de utilizador, consulte API de automação do Windows: Automação da Interface de Utilizador.
Produtos de tecnologia assistiva e scripts de teste navegam na árvore de automação da interface do usuário para coletar informações sobre a interface do usuário (UI) e seus elementos.
Dentro da árvore de automação da interface do usuário, há um elemento raiz (RootElement) que representa a área de trabalho atual e cujos elementos filho representam as janelas do aplicativo. Cada um desses subelementos pode conter elementos que representam partes da interface, como menus, botões, barras de ferramentas e caixas de listagem. Esses elementos, por sua vez, podem conter elementos como itens de lista.
A árvore de automação da interface do usuário não é uma estrutura fixa e raramente é vista em sua totalidade, pois pode conter milhares de elementos. Partes dele são construídas conforme necessário, e podem sofrer alterações à medida que os elementos são adicionados, movidos ou removidos.
Os provedores de Automação da Interface do Usuário oferecem suporte à árvore de Automação da Interface do Usuário implementando a navegação entre itens dentro de um fragmento, que consiste em uma raiz (geralmente hospedada em uma janela) e uma subárvore. No entanto, os provedores não estão preocupados com a navegação de um controle para outro. Isso é gerenciado pelo núcleo de automação da interface do usuário, usando informações dos provedores de janela padrão.
Vistas da árvore de automação
A árvore de automação da interface do usuário pode ser filtrada para criar exibições que contenham apenas os AutomationElement objetos relevantes para um cliente específico. Essa abordagem permite que os clientes personalizem a estrutura apresentada por meio da automação da interface do usuário de acordo com suas necessidades específicas.
O cliente tem duas maneiras de personalizar a visualização: por escopo e por filtragem. O escopo é definir a extensão da exibição, a partir de um elemento base: por exemplo, o aplicativo pode querer encontrar apenas filhos diretos da área de trabalho ou todos os descendentes de uma janela do aplicativo. Filtrar é definir os tipos de elementos que devem ser incluídos na exibição.
Os provedores de automação da interface do utilizador oferecem suporte à filtragem ao definir propriedades nos elementos, incluindo as propriedades IsControlElementProperty e IsContentElementProperty.
A Automação da Interface do Usuário fornece três modos de exibição padrão. Essas exibições são definidas pelo tipo de filtragem realizada; O escopo de qualquer exibição é definido pelo aplicativo. Além disso, o aplicativo pode aplicar outros filtros nas propriedades; por exemplo, para incluir apenas controles habilitados em um modo de exibição de controle.
Vista bruta
A vista bruta da árvore de automação de UI é a árvore completa de objetos para os quais o ambiente de AutomationElement trabalho é a raiz. A visualização bruta segue de perto a estrutura programática nativa de um aplicativo e, portanto, é a visualização mais detalhada disponível. É também a base sobre a qual são construídas as outras perspetivas da árvore. Como essa exibição depende da estrutura subjacente da interface do usuário, a exibição bruta de um botão WPF terá uma exibição bruta diferente de um botão Win32.
A visualização bruta é obtida pesquisando elementos sem especificar propriedades ou usando o RawViewWalker para navegar na árvore.
Vista de Controlo
A exibição de controle da árvore de automação da interface do usuário simplifica a tarefa do produto de tecnologia assistiva de descrever a interface do usuário para o usuário final e ajudar esse usuário final a interagir com o aplicativo, pois ele mapeia de perto a estrutura da interface do usuário percebida por um usuário final.
A vista de controlo é um subconjunto da vista bruta. Eles incluem todos os itens da interface do usuário na vista bruta que um utilizador final entenderia como interativos ou que contribuem para a estrutura lógica dos controlos na interface do usuário. Exemplos de itens da interface do usuário que contribuem para a estrutura lógica da interface do usuário, mas não são interativos, são contêineres de itens, como cabeçalhos de exibição de lista, barras de ferramentas, menus e a barra de status. Itens não interativos usados simplesmente para layout ou fins decorativos não serão vistos na visualização de controle. Um exemplo é um painel que foi usado apenas para dispor os controles em uma caixa de diálogo, mas não contém nenhuma informação. Os itens não interativos que serão vistos na visualização de controle são gráficos com informações e texto estático em uma caixa de diálogo. Os itens não interativos incluídos na vista de controlo não podem receber o foco do teclado.
A exibição de controle é obtida pesquisando elementos que têm a IsControlElement propriedade definida como true, ou usando o ControlViewWalker para navegar na árvore.
Visualização de conteúdo
A visualização de conteúdo da Árvore de Automação da Interface do Usuário é um subconjunto da visualização de controle. Ele contém itens da interface do usuário que transmitem as informações verdadeiras em uma interface do usuário, incluindo itens da interface do usuário que podem receber o foco do teclado e algum texto que não é um rótulo em um item da interface do usuário. Por exemplo, os valores numa caixa de combinação deslizante aparecerão na vista de conteúdo pois representam as informações usadas por um utilizador final. Na exibição de conteúdo, uma caixa de combinação e uma caixa de listagem são representadas como uma coleção de itens da interface do usuário onde um, ou talvez mais de um, item pode ser selecionado. O facto de um estar sempre aberto e poder ser expandido e recolhido é irrelevante na visualização de conteúdo, pois é concebido para mostrar o conteúdo que está a ser apresentado ao utilizador.
A exibição de conteúdo é obtida pesquisando elementos que têm a IsContentElement propriedade definida como true, ou usando o ContentViewWalker para navegar na árvore.