Prise en charge d'UI Automation pour le type de contrôle List

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 fournit des informations sur la prise en charge d’UI Automation pour le type de contrôle List. Dans UI Automation, un type de contrôle est un ensemble de conditions qu’un contrôle doit respecter pour pouvoir utiliser la propriété ControlTypeProperty. Les conditions incluent des instructions spécifiques pour la structure d’arborescence, les valeurs de propriété et les modèles de contrôle UI Automation.

Le type de contrôle List offre un moyen d’organiser un groupe plat ou des groupes d’éléments et permet à un utilisateur de sélectionner un ou plusieurs de ces éléments. Le type de contrôle List présente une petite restriction quant aux types d’éléments enfants qu’il peut contenir. Les fournisseurs UI Automation peuvent de ce fait prendre en charge un élément bien connu pour les conteneurs de sélection.

Les exigences UI Automation des sections suivantes s’appliquent à tous les contrôles qui implémentent le type de contrôle List, que ce soit Windows Presentation Foundation (WPF), Win32 ou Windows Forms. Les contrôles de conteneur List constituent un exemple de contrôles qui implémentent le type de contrôle List.

Arborescence UI Automation obligatoire

Le tableau suivant représente les deux affichages de l’arborescence UI Automation concernant les contrôles de liste. En outre, il décrit ce que peut contenir chaque affichage. L’affichage de contrôle contient uniquement des éléments qui correspondent à des contrôles, tandis que l’affichage de contenu supprime les informations redondantes de l’arborescence. Par exemple, un contrôle de texte servant d’étiquette pour une zone de liste déroulante est exposé en tant que ComboBox NameProperty. Comme le contrôle de texte est déjà exposé de cette manière via l’affichage de contrôle, il n’est pas nécessaire de l’exposer deux fois. De ce fait, il est supprimé de l’affichage de contenu. Pour plus d’informations sur l’arborescence UI Automation, consultez Vue d’ensemble de l’arborescence UI Automation.

Affichage de contrôle Affichage de contenu
Contient les éléments qui correspondent aux contrôles. Supprime les informations redondantes de l’arborescence pour permettre aux technologies d’assistance d’utiliser le plus petit ensemble d’informations explicites pour l’utilisateur final.
List

- DataItem (0 ou plus)
- ListItem (0 ou plus)
- Group (0 ou plus)
- ScrollBar (0, 1 ou 2)
List

- DataItem (0 ou plus)
- ListItem (0 ou plus)
- Group (0 ou plus)

L’affichage de contrôle pour un contrôle qui implémente le type de contrôle List (par exemple, un contrôle list) se compose des éléments suivants :

  • Zéro ou plusieurs éléments dans le contrôle de liste (les éléments peuvent être basés sur les types de contrôle Élément de liste ou Élément de données).

  • Zéro ou plusieurs contrôles de groupe dans un contrôle de liste.

  • Zéro, un ou deux contrôles de barre de défilement.

L’affichage de contenu pour un contrôle qui implémente le type de contrôle List (par exemple, un contrôle list) se compose des éléments suivants :

  • Zéro ou plusieurs éléments dans le contrôle de liste (les éléments peuvent être basés sur les types de contrôle Élément de liste ou Élément de données).

  • Zéro ou plusieurs groupes dans le contrôle de liste.

Un contrôle list ne doit pas contenir d’éléments ayant une relation hiérarchique autre que le fait d’être regroupés. Si les éléments ont des enfants dans l’arborescence UI Automation, le conteneur de liste doit être basé sur le type de contrôle Tree.

Les éléments sélectionnables dans le contrôle de liste seront disponibles auprès des descendants dans l’arborescence UI Automation du contrôle de liste. Tous les éléments du contrôle list doivent appartenir au même groupe de sélection. Les éléments sélectionnables dans la liste doivent être exposées en tant que types de contrôle ListItem (et non DataItem).

Propriétés UI Automation obligatoires

Le tableau suivant liste les propriétés UI Automation dont la valeur ou la définition est particulièrement pertinente pour les contrôles de liste. Pour plus d’informations sur les propriétés UI Automation, consultez Propriétés UI Automation pour les clients.

Propriété UI Automation Valeur Notes
AutomationIdProperty Consultez les remarques. La valeur de cette propriété doit être unique dans tous les contrôles d’une application.
BoundingRectangleProperty Consultez les remarques. Rectangle externe qui contient l’ensemble du contrôle.
ClickablePointProperty Consultez les remarques. Si le contrôle list a un point interactif (point sur lequel l’utilisateur clique pour que la liste prenne le focus), ce point doit être exposé par le biais de cette propriété.

Si la propriété IsOffScreen a la valeur true, l’exception NoClickablePointException est levée.
IsKeyboardFocusableProperty Consultez les remarques. Si le contrôle peut recevoir le focus clavier, il doit prendre en charge cette propriété.
NameProperty Consultez les remarques. La valeur de la propriété Name du contrôle list doit communiquer la catégorie d’options dans laquelle l’utilisateur est invité à faire une sélection. Cette propriété tire généralement son nom d’une étiquette de texte statique. En l’absence d’étiquette de texte statique, un développeur d’applications doit exposer une valeur pour la propriété Name.

Le seul cas où cette propriété n’est pas obligatoire pour les contrôles list, c’est lorsque le contrôle est utilisé dans la sous-arborescence d’un autre contrôle.
LabeledByProperty Consultez les remarques. S’il existe une étiquette de texte statique, cette propriété doit exposer une référence à ce contrôle.
ControlTypeProperty List Cette valeur est identique pour toutes les infrastructures d’interface utilisateur.
LocalizedControlTypeProperty « liste » Chaîne localisée correspondant au type de contrôle List.
IsContentElementProperty True Le contrôle de liste est toujours inclus dans l’affichage du contenu de l’arborescence UI Automation.
IsControlElementProperty True Le contrôle de liste est toujours inclus dans l’affichage de contrôle de l’arborescence UI Automation.
IsKeyboardFocusableProperty True Si le conteneur peut accepter l’entrée au clavier, cette propriété doit avoir la valeur true.
HelpTextProperty Consultez les remarques. Le texte d’aide sur les contrôles list doit expliquer la raison pour laquelle l’utilisateur est invité à faire un sélection dans une liste d’options. Par exemple, « la sélection d’un élément dans cette liste a pour effet de définir la résolution d’affichage de votre moniteur ».

Modèles de contrôle et propriétés UI Automation requis

Le tableau suivant répertorie les modèles de contrôle UI Automation qui doivent être pris en charge par les contrôles de liste. Pour plus d’informations sur les modèles de contrôle, consultez UI Automation Control Patterns Overview.

Modèle de contrôle/Propriété de modèle Prise en charge/valeur Notes
ISelectionProvider Obligatoire Tous les contrôles qui prennent en charge le type de contrôle List doivent implémenter ISelectionProvider quand un état de sélection est maintenu entre les éléments contenus dans le contrôle. Si les éléments présents dans le conteneur ne peuvent pas être sélectionnés, le type de contrôle Group doit être utilisé.
IsSelectionRequired Dépend Avec les contrôles List, la sélection d’un élément n’est pas toujours obligatoire.
CanSelectMultiple Dépend Les contrôles List peuvent être des conteneurs à sélection unique ou multiple.
IScrollProvider Dépend Implémentez ce modèle de contrôle si les éléments du conteneur peuvent faire l’objet d’un défilement.
IGridProvider Dépend Implémentez ce modèle quand la navigation dans la grille doit être disponible sur un élément, par élément.
IMultipleViewProvider Dépend Implémentez ce modèle de contrôle si le contrôle peut prendre en charge plusieurs affichages des éléments du conteneur.
ITableProvider Jamais ITableProvider n’est jamais pris en charge pour le type de contrôle List. Si le contrôle doit prendre en charge ce modèle de contrôle, le contrôle doit être basé sur le type de contrôle Data Grid.

Événements UI Automation obligatoires

Le tableau suivant répertorie les événements UI Automation qui doivent être pris en charge par tous les contrôles de liste. Pour plus d’informations sur les événements, consultez UI Automation Events Overview.

Événement UI Automation Prise en charge/valeur Notes
InvalidatedEvent Dépend Aucun
LayoutInvalidatedEvent Dépend None
Événement de modification de propriétéBoundingRectangleProperty Obligatoire None
Événement de modification de propriétéIsOffscreenProperty Obligatoire None
Événement de modification de propriétéIsEnabledProperty Obligatoire None
Événement de modification de propriétéCurrentViewProperty Dépend None
Événement de modification de propriétéHorizontallyScrollableProperty Dépend None
Événement de modification de propriétéHorizontalScrollPercentProperty Dépend None
Événement de modification de propriétéHorizontalViewSizeProperty Dépend None
Événement de modification de propriétéVerticalScrollPercentProperty Dépend None
Événement de modification de propriétéVerticallyScrollableProperty Dépend None
Événement de modification de propriétéVerticalViewSizeProperty Dépend None
AutomationFocusChangedEvent Obligatoire None
StructureChangedEvent Obligatoire None

Voir aussi