Suporte de automação de interface de usuário para o tipo de controle MenuItem

Observação

Esta documentação destina-se a desenvolvedores de .NET Framework que querem usar as classes da 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 do Usuário, confira API de Automação do Windows: Automação da Interface do Usuário.

Este tópico fornece informações sobre o suporte de Automação da Interface do Usuário para o tipo de controle de MenuItem. Ele descreve a estrutura de árvore de Automação de Interface de Usuário Microsoft do controle e fornece as propriedades e os padrões de controle necessários para o tipo de controle de MenuItem.

Um controle de menu permite a organização hierárquica de elementos associados a comandos e manipuladores de eventos. Em um aplicativo típico do Microsoft Windows, uma barra de menus contém vários itens de menu (como Arquivo, Edição e Janela) e cada item de menu exibe um menu. Um menu contém uma coleção de itens de menu (como Novo, Abrir e Fechar), que podem ser expandidos para exibir itens de menu adicionais ou executar uma ação específica quando clicado. Um item de menu pode ser hospedado em um menu, barra de menus ou barra de ferramentas.

As seções a seguir definem a estrutura de árvore de automação da IU, as propriedades, os padrões de controle e os eventos necessários para o tipo de controle de MenuItem. Os requisitos de Automação da Interface do Usuário se aplicam a todos os controles de cabeçalho do WPF (Windows Presentation Foundation), Win32 ou Windows Forms.

Estrutura da árvore de automação da IU necessária

A tabela a seguir descreve a exibição de controle e a exibição de conteúdo da árvore de automação da IU que pertence aos controles de item de menu e descreve o que pode conter em cada exibição. Para obter mais informações sobre a árvore de automação da IU, consulte Visão geral da árvore de automação da IU.

Exibição de controle Exibição de conteúdo
MenuItem "Ajuda"

  • Menu (submenu do item de menu Ajuda)

    • MenuItem "Tópicos da Ajuda"
    • MenuItem "Sobre o Bloco de Notas"
MenuItem "Ajuda"

− MenuItem "Tópicos da Ajuda"
− MenuItem "Sobre o Bloco de Notas"

A exibição de controle do controle de item de menu tem a estrutura da árvore de IU mostrada acima. Observe que o item de menu Ajuda está incluído para ilustrar melhor a estrutura em um menu típico para a hierarquia de submenus.

Para a exibição de conteúdo, o Menu está ausente da árvore de automação da IU porque não transmite informações significativas para o usuário final.

Propriedades de Automação da Interface do Usuário necessárias

A tabela a seguir lista as propriedades de Automação da Interface do Usuário cujo valor ou definição é especialmente relevante para controles de itens de menu. Para obter mais informações sobre as propriedades de Automação da Interface do Usuário, consulte Propriedades de Automação da Interface do Usuário para Clientes.

Propriedade Valor Descrição
AutomationIdProperty Veja as observações. O valor dessa propriedade precisa ser exclusivo em todos os controles de um aplicativo.
BoundingRectangleProperty Veja as observações. O retângulo mais externo que contém todo o controle.
ClickablePointProperty Veja as observações. Com suporte se houver um retângulo delimitador. Se nem todos os pontos dentro do retângulo delimitador forem clicáveis e você executar um teste de clique especializado, substitua e forneça um ponto clicável.
IsKeyboardFocusableProperty Veja as observações. Se o controle puder receber o foco do teclado, ele deverá dar suporte a essa propriedade.
NameProperty Veja as observações. O controle de item de menu está incluído na exibição de conteúdo da árvore de automação da IU e é autorrotulado com um nome.
LabeledByProperty Null Sem rótulo.
ControlTypeProperty MenuItem Esse valor é o mesmo para todas as estruturas da IU.
LocalizedControlTypeProperty "item de menu" Cadeia de caracteres localizada correspondente ao tipo de controle de MenuItem.
IsContentElementProperty True O controle de item de menu não está incluído na exibição de conteúdo da árvore de automação da IU.
IsControlElementProperty True O controle de item de menu deve sempre ser incluído na exibição de controle da árvore de automação da IU.

Padrões de controle de Automação da Interface do Usuário necessários

A tabela a seguir lista os padrões de controle de Automação da Interface do Usuário que deverão ter suporte de todos os controles de item de menu. Para obter mais informações sobre padrões de controle, consulte Visão geral dos padrões de controle de Automação da Interface do Usuário.

Propriedade do Padrão de Controle Suporte Observações
IExpandCollapseProvider Depende Se o controle puder ser expandido ou recolhido, implemente IExpandCollapseProvider.
IInvokeProvider Depende Se o controle executar uma única ação ou comando, implemente IInvokeProvider.
IToggleProvider Depende Se o controle representar uma opção que pode ser ativada ou desativada, implemente IToggleProvider.
ISelectionItemProvider Depende Se o controle for usado para selecionar uma lista de opções entre os itens de menu, implemente ISelectionItemProvider.

Automação de Eventos de Interface de Usuário para Item de Menu

A tabela a seguir lista os eventos da Automação da Interface do Usuário Microsoft associados ao controle de item de menu.

Evento Suporte Explicação
InvokedEvent Depende Deve ser gerado se o controle der suporte ao padrão de controle Invoke.
ToggleStateProperty evento de alteração de propriedade. Depende Deve ser gerado se o controle der suporte ao padrão de controle Toggle.
ExpandCollapseStateProperty evento de alteração de propriedade. Depende Deve ser gerado se o controle der suporte ao padrão de controle Expand Collapse.
ElementSelectedEvent Depende Nenhum.

Eventos de Automação da Interface do Usuário necessários

A tabela a seguir lista os eventos de Automação da Interface do Usuário para terem suporte de todos os controles de item de menu. Para mais informações sobre eventos, consulte Visão geral de eventos de Automação da Interface do Usuário.

Evento de Automação da Interface do Usuário Suporte/Valor Observações
InvokedEvent Depende Nenhum
ElementAddedToSelectionEvent Depende Nenhum
ElementRemovedFromSelectionEvent Depende Nenhum
ElementSelectedEvent Depende Nenhum
Evento de alteração da propriedade BoundingRectangleProperty. Obrigatório Nenhum
Evento de alteração da propriedade IsOffscreenProperty. Obrigatório Nenhum
Evento de alteração da propriedade IsEnabledProperty. Obrigatório Nenhum
Evento de alteração da propriedade ExpandCollapseStateProperty. Depende Nenhum
Evento de alteração da propriedade ToggleStateProperty. Depende Nenhum
AutomationFocusChangedEvent Obrigatório Nenhum
StructureChangedEvent Obrigatório Nenhum

Problemas herdados

O Padrão de Alternância só terá suporte quando o item de menu Win32 for verificado e puder ser determinado programaticamente como necessário para dar suporte ao Padrão de Alternância. Como o item de menu Win32 não expõe se ele tem a capacidade de ser verificado, o Padrão de Invocação terá suporte quando o item de menu não for verificado. Uma exceção será feita para sempre dar suporte ao Padrão de Invocação, mesmo para itens de menu que só devem dar suporte ao Padrão de Alternância. Isso é para que os clientes não fiquem confusos se um elemento que dá suporte ao Padrão de Invocação (quando o item de menu foi desmarcado) não dá mais suporte ao padrão após ele ser verificado.

Confira também