Partager via


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

RemarqueRemarque

Cette documentation s'adresse aux développeurs .NET Framework qui veulent utiliser les classes UI Automation managées définies dans l'espace de noms System.Windows.Automation.Pour obtenir les informations les plus récentes sur UI Automation, consultez API Windows Automation : UI Automation (page éventuellement en anglais).

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 voir des exemples de contrôles qui implémentent ce modèle de contrôle, consultez Mappage de modèle de contrôle pour les clients UI Automation.

Cette rubrique comprend les sections suivantes.

  • Conventions et directives d'implémentation
  • Membres requis pour IExpandCollapseProvider
  • Exceptions
  • Rubriques connexes

Conventions et directives d'implémentation

Lorsque 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.

    RemarqueRemarque

    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.

  • Lorsque le ExpandCollapseState d'un contrôle a la valeur 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 le ExpandCollapseState. Si des objets enfants sont ajoutés par la suite, le 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 lorsqu'un Expand ou Collapse est appelé.

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

    • Si l'appel de Expand ou 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 lorsqu'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 le 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 le ExpandCollapseState de ses parents. Si des descendants sont générés à la demande, il est possible qu'ils n'apparaissent dans l'arborescence UI Automation qu'après leur premier affichage ou que lorsqu'ils sont visibles.

Membres requis pour IExpandCollapseProvider

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

Membres requis

Type de membre

Remarques

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

Tâches

Prendre en charge des modèles de contrôle dans un fournisseur UI Automation

Naviguer entre les éléments UI Automation avec TreeWalker

Utiliser la mise en cache dans UI Automation

Concepts

Vue d'ensemble des modèles de contrôle UI Automation

Modèles de contrôle UI Automation pour les clients

Vue d'ensemble de l'arborescence UI Automation