Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você 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 de Interface do Usuário gerenciadas definidas no namespace System.Windows.Automation. Para obter as informações mais recentes sobre Automação de Interface do Usuário, consulte API de Automação do Windows: Automação de Interface do Usuário.
Este tópico apresenta diretrizes e convenções para implementar IExpandCollapseProvider, incluindo informações sobre propriedades, métodos e eventos. Os links para referências adicionais são listados no final da visão geral.
O ExpandCollapsePattern padrão de controle é utilizado para suportar controles que se expandem visualmente para exibir mais conteúdo e se recolhem para ocultar o conteúdo. Para obter exemplos de controles que implementam esse padrão de controle, consulte mapeamento de padrões de controle para clientes de automação de interface do usuário.
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, deverão dar suporte ao padrão de controle ExpandCollapsePattern, enquanto os 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 deverá dar suporte para ExpandCollapsePattern.
Observação
Uma exceção é o controle de menu, que é uma agregação de objetos MenuItem individuais. Os objetos MenuItem podem suportar o padrão de controle ExpandCollapsePattern, mas o controle de menu pai não é capaz de fazê-lo. Uma exceção semelhante se aplica aos controles Tree e Tree Item.
Quando o ExpandCollapseState de um controle é definido como LeafNode, qualquer funcionalidade de ExpandCollapsePattern está inativa no momento para o controle e as únicas informações que podem ser obtidas usando esse padrão de controle são o ExpandCollapseState. Se algum objeto filho for adicionado posteriormente, as alterações ExpandCollapseState e a funcionalidade ExpandCollapsePattern serão ativadas.
ExpandCollapseState refere-se apenas à visibilidade de objetos filho imediatos, não se refere à visibilidade de todos os objetos descendentes.
A funcionalidade Expandir e Recolher é específica do controle. Veja a seguir 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 adotar quando um Expand ou Collapse é chamado.
Ao chamar Expand em um TreeItem, pode-se exibir todos os descendentes ou apenas os filhos imediatos.
Se ao chamar Expand ou Collapse em um controle mantiver o estado dos 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 dos descendentes quando recolhido, o controle poderá destruir todos os descendentes que não são mais visíveis e geram um evento destruído ou poderá 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 IU (com o estado de visibilidade apropriado) independentemente dos paisExpandCollapseState. 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 apenas enquanto estiverem visíveis.
Membros necessários para IExpandCollapseProvider
As propriedades e os métodos a seguir são necessários para implementar IExpandCollapseProvider.
| Membros necessários | Tipo de membro | Anotações |
|---|---|---|
| ExpandCollapseState | Propriedade | Nenhum |
| Expand | Método | Nenhum |
| Collapse | Método | Nenhum |
| AutomationPropertyChangedEventHandler | Acontecimento | Esse controle não tem eventos associados; use este delegado genérico. |
Exceções
Os provedores devem gerar as exceções a seguir.
| Tipo de exceção | Condição |
|---|---|
| InvalidOperationException | Expand ou Collapse será chamado quando o ExpandCollapseState = LeafNode. |
Consulte também
- Visão geral dos padrões de controle de automação da interface do usuário
- Padrões de controle de suporte em um provedor de automação da interface do usuário
- Padrões de Controle para Clientes de Automação de IU
- Navegar entre elementos de automação da interface do usuário com TreeWalker
- Visão geral da árvore de automação da interface do usuário
- Usar armazenamento em cache em automação de interface do usuário