Partilhar via


Padrão de controle ExpandCollapse

Descreve diretrizes e convenções para implementar IExpandCollapseProvider, incluindo informações sobre propriedades, métodos e eventos. O padrão de controle ExpandCollapse é usado para dar suporte a controles que se expandem visualmente para exibir mais conteúdo e recolher para ocultar conteúdo.

Para obter exemplos de controles que implementam esse padrão de controle, consulte Tipos de controle e seus padrões de controle com suporte.

Este tópico inclui as seções a seguir.

Diretrizes e convenções de implementaçã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 de expansão/recolhimento, devem dar suporte ao padrão de controle ExpandCollapse , enquanto seus elementos filho não. Por exemplo, um controle de caixa de combinação é criado com uma combinação de controles de caixa de listagem, botão e edição, mas é apenas a caixa de combinação pai que deve dar suporte ao padrão de controle ExpandCollapse .

    Observação

    Uma exceção é o controle de menu, que é uma agregação de objetos de item de menu individuais. Os objetos de item de menu podem dar suporte ao padrão de controle ExpandCollapse , mas o controle de menu pai não pode. Uma exceção semelhante se aplica aos controles de árvore e item de árvore.

     

  • Quando o IExpandCollapseProvider::ExpandCollapseState de um controle é definido como ExpandCollapseState_LeafNode, qualquer funcionalidade ExpandCollapse está inativa no momento para o controle e as únicas informações que podem ser obtidas usando esse padrão de controle são ExpandCollapseState. Se algum objeto filho for adicionado posteriormente, a funcionalidade ExpandCollapseState e ExpandCollapse será ativada.

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

  • A funcionalidade IExpandCollapseProvider::Expand e Collapse é específica do controle. Seguem-se exemplos deste comportamento.

    • O Menu Pessoal do Office pode ser um item de menu de três estados ("Expandido", "Recolhido" e "ParcialmenteExpandado") em que o controle especifica o estado a ser adotado quando Expandir ou Recolher é chamado.
    • Chamar Expandir em um item de árvore pode exibir todos os descendentes ou apenas filhos imediatos.
    • Se chamar Expandir ou Recolher em um controle mantiver o estado de seus descendentes, um evento de alteração de visibilidade deverá ser enviado, não um evento de alteração de estado. Se o controle pai não mantiver o estado de seus descendentes quando recolhido, o controle poderá 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 alteração de visibilidade.
  • Para garantir a navegação, é desejável que um objeto esteja na árvore de Automação da Interface do Usuário da Microsoft (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 IU após serem exibidos pela primeira vez ou apenas enquanto estiverem visíveis.

Membros necessários para IExpandCollapseProvider

As propriedades, métodos e eventos a seguir são necessários para implementar a interface IExpandCollapseProvider .

Membros necessários Tipo de membro Observações
Expandcollapsestate Propriedade Nenhum
Expanda Método Nenhum
Recolher Método Nenhum
IUIAutomationPropertyChangedEventHandler Evento Esse controle não tem eventos associados; use esse manipulador de eventos genérico.

 

Tipos de controle e seus padrões de controle com suporte

Visão Geral de Padrões de Controle de Automação de Interface de Usuário

Visão geral da árvore de automação de interface do usuário