Développer le modèle de contrôleCollapse
Décrit les instructions et conventions d’implémentation 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 s’étendent visuellement pour afficher plus de contenu et réduire pour masquer le contenu.
Pour obtenir des exemples de contrôles qui implémentent ce modèle de contrôle, consultez types de contrôle et leurs modèles de contrôle pris en charge.
Cette rubrique contient les sections suivantes.
- directives et conventions de mise en œuvre
- membres obligatoires pour IExpandCollapseProvider
- rubriques connexes
Directives et conventions de mise en œuvre
Lors de l’implémentation du modèle de contrôle ExpandCollapse, notez les instructions et conventions suivantes :
Les contrôles d’agrégation, générés avec des objets enfants qui fournissent l’interface utilisateur avec des fonctionnalités de développement/réduction, doivent prendre en charge le modèle de contrôle ExpandCollapse alors que leurs éléments enfants ne le font pas. 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.
Note
Une exception est le contrôle de menu, qui est un agrégat d’objets d’élément 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 a la valeur 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 les ExpandCollapseState. Si des objets enfants sont ajoutés par la suite, la fonctionnalité ExpandCollapseState modifications et fonctionnalité ExpandCollapse est activée.
ExpandCollapseState fait référence à la visibilité des objets enfants immédiats uniquement ; elle ne fait pas référence à la visibilité de tous les objets descendants.
IExpandCollapseProvider ::Expand et La fonctionnalité Réduire est spécifique au contrôle. Voici des exemples de ce comportement.
- Le menu Office Personnel peut être un élément de menu à trois états (« Développé », « Réduit » et « Partiellementexpanded ») dans lequel le contrôle spécifie l’état à adopter lorsque Développer ou Réduire est appelé.
- L’appel Développer sur un élément d’arborescence peut afficher tous les descendants ou uniquement les enfants immédiats.
- Si vous appelez Expand ou Collapse sur un contrôle conserve l’état de ses descendants, un événement de modification de visibilité doit être envoyé, et non un événement de modification d’état. Si le contrôle parent ne conserve 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 il peut modifier l'ExpandCollapseState pour chaque descendant et déclencher un événement de modification de visibilité.
Pour garantir la navigation, il est souhaitable qu’un objet se trouve dans l’arborescence Microsoft UI Automation (avec un état de visibilité approprié) quel que soit son parent ExpandCollapseState. Si les descendants sont générés à la demande, ils peuvent apparaître uniquement dans l’arborescence UI Automation après avoir été affichés pour la première fois ou uniquement pendant qu’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 obligatoires | Type de membre | Notes |
---|---|---|
ExpandCollapseState | Propriété | Aucun |
Développer | 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. |
Rubriques connexes