Implémentation du modèle de contrôle Selection 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 recommandations à respecter pour implémenter ISelectionProvider, notamment des informations sur les événements et les propriétés. Des 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 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 Selection, notez les conventions et recommandations suivantes :
Les contrôles qui implémentent ISelectionProvider autorisent la sélection d’un ou de plusieurs éléments enfants. Par exemple, les contrôles de zone de liste, d’affichage de liste et d’arborescence prennent en charge les sélections multiples, alors que les contrôles de zone de liste déroulante, de curseur et de groupe de cases d’option prennent en charge la sélection unique.
Les contrôles dotés d’une plage minimale, maximale et continue, tels que le contrôle de curseur Volume , doivent implémenter IRangeValueProvider au lieu de ISelectionProvider.
Les contrôles à sélection unique qui gèrent des contrôles enfants qui implémentent IRawElementProviderFragmentRoot, tels que le contrôle de curseur Résolution d’écran dans la boîte de dialogue Propriétés d’affichage ou le contrôle de sélection Sélecteur de couleurs de Microsoft Word (illustré ci-dessous), doivent implémenter ISelectionProvider. Leurs enfants doivent implémenter IRawElementProviderFragment et ISelectionItemProvider.
Exemple de mappage d’une chaîne d’échantillons de couleurs
- Les menus ne prennent pas en charge SelectionPattern. Si vous utilisez des éléments de menu qui incluent à la fois des graphiques et du texte (tels que les éléments du Volet de visualisation du menu Affichage de Microsoft Outlook) et que vous avez besoin de transmettre l’état, vous devez implémenter IToggleProvider.
Membres requis pour ISelectionProvider
Les propriétés, méthodes et événements suivants sont obligatoires pour l’interface ISelectionProvider .
Membres nécessaires | Type | Notes |
---|---|---|
CanSelectMultiple | Propriété | Doit prendre en charge les événements de modification de propriété à l’aide de AddAutomationPropertyChangedEventHandler et RemoveAutomationPropertyChangedEventHandler. |
IsSelectionRequired | Propriété | Doit prendre en charge les événements de modification de propriété à l’aide de AddAutomationPropertyChangedEventHandler et RemoveAutomationPropertyChangedEventHandler. |
GetSelection | Méthode | Aucun |
InvalidatedEvent | Événement | Déclenché lorsqu’une sélection a changé de manière significative dans un conteneur et requiert l’envoi d’un plus grand nombre d’événements d’ajout et de suppression que la constante InvalidateLimit ne le permet. |
Les propriétés IsSelectionRequired et CanSelectMultiple peuvent être dynamiques. Par exemple, l’état initial d’un contrôle peut ne présenter aucun élément sélectionné par défaut, indiquant que IsSelectionRequired a la valeur false
. Toutefois, une fois qu’un élément a été sélectionné, le contrôle doit toujours avoir au moins un élément sélectionné. De la même façon, dans quelques cas rares, un contrôle peut autoriser la sélection de plusieurs éléments lors de l’initialisation, mais n’autoriser par la suite que des sélections uniques.
Exceptions
Les fournisseurs doivent lever les exceptions suivantes.
Type d’exception | Condition |
---|---|
ElementNotEnabledException | Si le contrôle n’est pas activé. |
InvalidOperationException | Si le contrôle est masqué. |
Voir aussi
- Vue d'ensemble des modèles de contrôle UI Automation
- Prendre en charge des modèles de contrôle dans un fournisseur UI Automation
- Modèles de contrôle UI Automation pour les clients
- Implémentation du modèle de contrôle SelectionItem d’UI Automation
- Vue d’ensemble de l’arborescence UI Automation
- Utiliser la mise en cache dans UI Automation