Implémentation du modèle de contrôle ExpandCollapse d'UI Automation

Notes

Cette documentation s’adresse aux développeurs .NET Framework qui souhaitent utiliser les classes UI Automation managées définies dans l’espace de noms System.Windows.Automation. Pour obtenir les dernières informations sur UI Automation, consultez API Windows Automation : UI Automation.

Cette rubrique présente les conventions et directives à respecter pour implémenter IExpandCollapseProvider, notamment les informations sur les propriétés, les méthodes et les événements. Des liens vers des références supplémentaires sont répertoriés à la fin de la vue d'ensemble.

Le modèle de contrôle ExpandCollapsePattern est utilisé pour prendre en charge les contrôles qui peuvent être visuellement développés pour afficher davantage de contenu et réduits pour masquer le contenu. Pour obtenir des exemples de contrôles implémentant ce modèle de contrôle, consultez Control Pattern Mapping for UI Automation Clients.

Conventions et directives d'implémentation

Quand vous implémentez le modèle de contrôle ExpandCollapse, notez les conventions et directives suivantes :

  • Les contrôles d'agrégat, générés avec des objets enfants qui fournissent la fonctionnalité de développement/réduction à l'interface utilisateur, doivent prendre en charge le modèle de contrôle ExpandCollapsePattern même si leurs éléments enfants ne le font pas. Par exemple, un contrôle zone de liste déroulante est généré avec une combinaison de contrôles zone de liste, de contrôles bouton et de contrôles d'édition, mais seule la zone de liste déroulante parente doit prendre en charge ExpandCollapsePattern.

    Notes

    Le contrôle de menu, qui est un agrégat d'objets MenuItem individuels, fait exception à cette règle. Les objets MenuItem peuvent prendre en charge le modèle de contrôle ExpandCollapsePattern , mais le contrôle Menu parent ne le peut pas. Une exception semblable s'applique aux contrôles Tree et Tree Item.

  • Quand l' ExpandCollapseState d'un contrôle est défini sur LeafNode, toute fonctionnalité ExpandCollapsePattern est actuellement inactive pour le contrôle et la seule information qui peut être obtenue à l'aide de ce modèle de contrôle est l' ExpandCollapseState. Si des objets enfants sont ajoutés par la suite, l' ExpandCollapseState change et la fonctionnalité ExpandCollapsePattern est activée.

  • ExpandCollapseState fait référence uniquement à la visibilité des objets enfants immédiats ; il ne fait pas référence à celle de tous les objets descendants.

  • La fonctionnalité de développement/réduction est propre au contrôle. Voici des exemples de ce comportement.

    • Le menu personnel d'Office peut être un MenuItem à trois états (Expanded, Collapsed et PartiallyExpanded) où le contrôle spécifie l'état à adopter quand un Expand ou Collapse est appelé.

    • L'appel d' Expand sur un TreeItem peut afficher tous les descendants ou seulement les enfants immédiats.

    • Si l'appel d' Expand ou de Collapse sur un contrôle maintient l'état de ses descendants, un événement de modification de la visibilité doit être envoyé, et non un événement de modification d'état. Si le contrôle parent ne maintient pas l'état de ses descendants quand il est réduit, le contrôle peut détruire tous les descendants qui ne sont plus visibles et déclencher un événement détruit, ou bien il peut modifier l' ExpandCollapseState pour chaque descendant et déclencher un événement de modification de la visibilité.

  • Pour assurer la navigation, il est souhaitable qu’un objet se trouve dans l’arborescence UI Automation (avec l’état de visibilité approprié), quel que soit l’ExpandCollapseState de ses parents. Si des descendants sont générés à la demande, ils peuvent n’apparaître dans l’arborescence UI Automation qu’après leur premier affichage ou seulement lorsqu’ils sont visibles.

Membres nécessaires pour IExpandCollapseProvider

Les propriétés et méthodes suivantes sont nécessaires à l'implémentation d' IExpandCollapseProvider.

Membres nécessaires Type de membre Notes
ExpandCollapseState Propriété Aucun
Expand Méthode Aucun
Collapse Méthode Aucun
AutomationPropertyChangedEventHandler Événement Aucun événement n'est associé à ce contrôle ; utilisez ce délégué générique.

Exceptions

Les fournisseurs doivent lever les exceptions suivantes.

Type d'exception Condition
InvalidOperationException Expand ou Collapse est appelé lorsque ExpandCollapseState = LeafNode.

Voir aussi