Partager via


Implémentation du modèle de contrôle de sélection pour l'automatisation de l'interface utilisateur

Remarque

Cette documentation est destinée 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 informations les plus récentes sur UI Automation, consultez API Windows Automation : UI Automation.

Cette rubrique présente les conventions et recommandations à respecter pour implémenter ISelectionProvider, notamment des informations sur les événements et les propriétés. Les liens vers des références supplémentaires sont répertoriés à la fin de la rubrique.

Le modèle de contrôle SelectionPattern permet de prendre en charge les contrôles qui agissent comme des conteneurs pour une collection d’éléments enfants sélectionnables. Les enfants de cet élément doivent implémenter ISelectionItemProvider. Pour obtenir des exemples de contrôles qui implémentent ce modèle de contrôle, consultez Mappage des modèles de contrôle pour les clients UI Automation.

Directives et conventions de mise en œuvre

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

  • Les contrôles qui implémentent ISelectionProvider autorisent la sélection d’un ou de plusieurs éléments enfants. Par exemple, la boîte de sélection, la vue en liste et la vue arborescente permettent plusieurs sélections, tandis que la boîte à liste déroulante, le curseur et le groupe de boutons radio permettent une sélection unique.

  • Les contrôles qui ont une plage minimale, maximale et continue, comme le contrôle de curseur de volume , doivent être implémentés IRangeValueProvider au lieu de ISelectionProvider.

  • Les contrôles de sélection unique qui gèrent les contrôles enfants qui implémentent IRawElementProviderFragmentRoot, tels que le curseur Résolution d’écran dans la boîte de dialogue Propriétés d’affichage ou le contrôle de sélection du sélecteur de couleurs de Microsoft Word (illustré ci-dessous), doivent implémenter ISelectionProvider; leurs enfants doivent implémenter à la fois IRawElementProviderFragment et ISelectionItemProvider.

Sélecteur de couleurs mis en surbrillance jaune. Exemple de mappage d’une chaîne d’échantillons de couleurs

  • Les menus ne permettent pas la fonctionnalité SelectionPattern. Si vous utilisez des éléments de menu qui incluent des graphiques et du texte (tels que les éléments du volet d’aperçu dans le menu Affichage dans Microsoft Outlook) et que vous devez transmettre l’état, vous devez implémenter IToggleProvider.

Membres obligatoires pour ISelectionProvider

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

Membres obligatoires Catégorie Remarques
CanSelectMultiple Propriété Doit prendre en charge les événements de changement de propriété en utilisant AddAutomationPropertyChangedEventHandler et RemoveAutomationPropertyChangedEventHandler.
IsSelectionRequired Propriété Doit prendre en charge les événements de changement de propriété en utilisant AddAutomationPropertyChangedEventHandler et RemoveAutomationPropertyChangedEventHandler.
GetSelection Méthode Aucun
InvalidatedEvent Événement Déclenché lorsqu’une sélection dans un conteneur a changé de manière significative et nécessite l’envoi de plus d’événements d’ajout et de suppression que la InvalidateLimit constante autorise.

Les propriétés IsSelectionRequired et CanSelectMultiple peuvent être dynamiques. Par exemple, l’état initial d’un contrôle peut ne pas avoir d’éléments sélectionnés par défaut, indiquant que IsSelectionRequired est false. Toutefois, une fois qu’un élément est sélectionné, le contrôle doit toujours avoir au moins un élément sélectionné. De même, dans de rares cas, un contrôle peut autoriser plusieurs éléments à sélectionner lors de l’initialisation, mais autoriser par la suite uniquement les sélections uniques à effectuer.

Exceptions

Les fournisseurs doivent lever les exceptions suivantes.

Type d’exception État
ElementNotEnabledException Si le contrôle n’est pas activé.
InvalidOperationException Si l'élément de commande est masqué.

Voir aussi