Partager via


Modèle de contrôle ExpandCollapse

Décrit les instructions et conventions pour l’implémentation d’IExpandCollapseProvider, y compris des informations sur les propriétés, les méthodes et les événements. Le modèle de contrôle ExpandCollapse est utilisé pour prendre en charge les contrôles qui se développent visuellement pour afficher davantage de contenu et se réduisent pour masquer le contenu.

Pour obtenir des exemples de contrôles qui implémentent ce modèle de contrôle, consultez Types de contrôles et leurs modèles de contrôle pris en charge.

Cette rubrique contient les sections suivantes.

Conventions et directives d'implémentation

Lors de l’implémentation du modèle de contrôle ExpandCollapse , notez les instructions et conventions suivantes :

  • Les contrôles d’agrégation, créés avec des objets enfants qui fournissent à l’interface utilisateur une fonctionnalité de développement/réduction, doivent prendre en charge le modèle de contrôle ExpandCollapse , contrairement à leurs éléments enfants. Par exemple, un contrôle de zone de liste modifiable est créé avec une combinaison de contrôles de zone de liste, de bouton et de modification, mais il s’agit uniquement de la zone de liste modifiable parente qui doit prendre en charge le modèle de contrôle ExpandCollapse .

    Notes

    Le contrôle de menu est une exception, qui est un agrégat d’objets d’éléments de menu individuels. Les objets d’élément de menu peuvent prendre en charge le modèle de contrôle ExpandCollapse , mais le contrôle de menu parent ne peut pas. Une exception similaire s’applique aux contrôles d’arborescence et d’élément d’arborescence.

     

  • Lorsque L’IExpandCollapseProvider::ExpandCollapseState d’un contrôle est défini sur ExpandCollapseState_LeafNode, toute fonctionnalité ExpandCollapse est actuellement inactive pour le contrôle et les seules informations qui peuvent être obtenues à l’aide de ce modèle de contrôle sont ExpandCollapseState. Si des objets enfants sont ajoutés par la suite, la fonctionnalité ExpandCollapseState est modifiée et la fonctionnalité ExpandCollapse est activée.

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

  • La fonctionnalité IExpandCollapseProvider::Expand et Collapse est spécifique au contrôle. Voici des exemples de ce comportement.

    • Le menu Personnel d’Office peut être un élément de menu à trois états (« Développé », « Réduit » et « Partiellementexpanded ») où le contrôle spécifie l’état à adopter lorsque l’option Développer ou Réduire est appelée.
    • L’appel de Développer sur un élément d’arborescence peut afficher tous les descendants ou uniquement les enfants immédiats.
    • Si l’appel à Développer ou Réduire sur un contrôle conserve l’état de ses descendants, un événement de changement de visibilité doit être envoyé, et non un événement de changement d’état. Si le contrôle parent ne conserve pas l’état de ses descendants lorsqu’il est réduit, il peut détruire tous les descendants qui ne sont plus visibles et déclencher un événement détruit ; ou il peut modifier l’ExpandCollapseState pour chaque descendant et déclencher un événement de changement de visibilité.
  • Pour garantir la navigation, il est souhaitable qu’un objet se trouve dans l’arborescence Microsoft UI Automation (avec l’état de visibilité approprié) quel que soit son parent ExpandCollapseState. 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 requis pour IExpandCollapseProvider

Les propriétés, méthodes et événements suivants sont nécessaires pour implémenter l’interface IExpandCollapseProvider .

Membres nécessaires Type de membre Notes
Expandcollapsestate Propriété Aucun
Développez Méthode Aucun
Réduire Méthode Aucun
IUIAutomationPropertyChangedEventHandler Événement Ce contrôle n’a aucun événement associé ; utilisez ce gestionnaire d’événements générique.

 

Types de contrôles et leurs modèles de contrôle pris en charge

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

Vue d’ensemble de l’arborescence UI Automation