Partilhar via


Implementando o padrão de controle ExpandCollapse da automação da interface do usuário

Nota

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 System.Windows.Automation namespace. Para obter as informações mais recentes sobre a automação da interface do usuário, consulte API de automação do Windows: automação da interface do usuário.

Este tópico apresenta diretrizes e convenções para implementação IExpandCollapseProvider, incluindo informações sobre propriedades, métodos e eventos. Os links para referências adicionais estão listados no final da visão geral.

O ExpandCollapsePattern padrão de controle é usado para dar suporte a controles que se expandem visualmente para exibir mais conteúdo e recolhem para ocultar conteúdo. Para obter exemplos de controles que implementam esse padrão de controle, consulte Mapeamento de padrão de controle para clientes de automação da interface do usuário.

Orientações e convenções de aplicação

Ao implementar o padrão de controle ExpandCollapse, observe as seguintes diretrizes e convenções:

  • Os controles agregados — criados com objetos filho que fornecem à interface do usuário a funcionalidade expandir/recolher — devem oferecer suporte ao ExpandCollapsePattern padrão de controle, enquanto seus elementos filho não. Por exemplo, um controle de caixa de combinação é criado com uma combinação de caixa de listagem, botão e controles de edição, mas é apenas a caixa de combinação pai que deve suportar o ExpandCollapsePattern.

    Nota

    Uma exceção é o controle menu, que é uma agregação de objetos MenuItem individuais. Os objetos MenuItem podem oferecer suporte ao ExpandCollapsePattern padrão de controle, mas o controle Menu pai não. Uma exceção semelhante se aplica aos controles Tree e Tree Item.

  • Quando o ExpandCollapseState de um controle é definido como LeafNode, qualquer ExpandCollapsePattern funcionalidade está atualmente inativa para o controle e as únicas informações que podem ser obtidas usando esse padrão de controle é o ExpandCollapseState. Se algum objeto filho for adicionado posteriormente, as alterações e ExpandCollapsePattern a ExpandCollapseState funcionalidade serão ativadas.

  • ExpandCollapseState refere-se apenas à visibilidade de objetos filhos imediatos; não se refere à visibilidade de todos os objetos descendentes.

  • A funcionalidade Expandir e Recolher é específica do controle. A seguir estão exemplos desse comportamento.

    • O Menu Pessoal do Office pode ser um MenuItem de três estados (Expanded, Collapsed e PartiallyExpanded) onde o controle especifica o estado a ser adotado quando um Expand ou Collapse é chamado.

    • Chamar Expand um TreeItem pode exibir todos os descendentes ou apenas filhos imediatos.

    • Se chamar Expand ou Collapse acionar um controle mantiver o estado de seus descendentes, um evento de alteração de visibilidade deve ser enviado, não um evento de mudança de estado Se o controle pai não mantiver o estado de seus descendentes quando colapsado, o controle pode destruir todos os descendentes que não são mais visíveis e gerar um evento destruído, ou pode alterar o ExpandCollapseState para cada descendente e gerar um evento de mudança de visibilidade.

  • Para garantir a navegação, é desejável que um objeto esteja na árvore de automação da interface do usuário (com o estado de visibilidade apropriado), independentemente de seus pais ExpandCollapseState. Se os descendentes forem gerados sob demanda, eles só poderão aparecer na árvore de Automação da Interface do Usuário depois de serem exibidos pela primeira vez ou somente enquanto estiverem visíveis.

Membros necessários para IExpandCollapseProvider

As seguintes propriedades e métodos são necessários para a implementação do IExpandCollapseProvider.

Membros obrigatórios Tipo de membro Notas
ExpandCollapseState Property Nenhuma
Expand Método Nenhuma
Collapse Método Nenhuma
AutomationPropertyChangedEventHandler Evento Esse controle não tem eventos associados; Use este delegado genérico.

Exceções

Os provedores devem lançar as seguintes exceções.

Tipo de exceção Condição
InvalidOperationException Ou Expand é chamado quando Collapse o = ExpandCollapseStateLeafNode .

Consulte também