UI Automation prise en charge du glisser-déplacer

Microsoft UI Automation définit deux modèles de contrôle pour la prise en charge des scénarios de glisser-déplacer, le modèle de contrôle Glisser et le modèle de contrôle DropTarget. Vous implémentez le modèle de contrôle Glisser pour un élément qui peut être déplacé, et le modèle de contrôle DropTarget pour un élément qui peut recevoir un élément déplacé ; c’est-à-dire une cible de déplacement. Les deux modèles de contrôle exposent des informations qu’une technologie d’assistance peut utiliser pour aider un utilisateur d’accessibilité à effectuer une opération de glisser-déplacer.

Faire glisser les styles

Lorsque vous implémentez le modèle de contrôle Glisser pour un élément pouvant faire glisser, vous devez décider d’implémenter le style de glissement source/cible ou le style de glissement source uniquement .

Style source/cible

Dans le style source/cible de glisser-déplacer, l’élément déplacé (la « source ») et l’élément de la cible déroulante (la « cible ») sont distincts et déclenchent chacun un ensemble distinct d’événements. Voici le cycle de vie d’une opération de glissement qui utilise le style source/cible :

Lorsque l’utilisateur démarre une opération de glissement :

Lorsque l’opération de glissement entre dans une région cible :

Lorsque l’opération de glissement quitte une région cible :

Lorsque l’utilisateur libère l’élément déplacé sur une autre cible :

Lorsque l’utilisateur libère l’élément déplacé sur une cible :

Les événements des objets source et cible sont étroitement liés, mais distincts. Les données sur ce qui est déplacé proviennent de la source, tandis que les données sur « ce qui pourrait se produire » et « ce qui s’est passé » proviennent de la cible.

Lorsqu’une opération de glissement est en cours, l’élément déplacé peut être déplacé vers et hors des régions cibles un nombre de fois avant la fin de l’opération.

Toute cible drop qui doit mettre à jour sa propriété IDropTargetProvider::D ropTargetEffect à la volée doit déclencher un événement de modification de propriété supplémentaire sur cette propriété.

Style source uniquement

Le style de glisser-source uniquement permet à un fournisseur d’éviter d’implémenter des cibles de déplacement. Le fait de ne pas implémenter de cibles de suppression permet de réduire le coût d’implémentation, mais ne fournit aucune information aux applications clientes d’accessibilité sur l’objet qui a reçu la suppression. Voici le cycle de vie d’une opération de glissement qui utilise le style source uniquement :

Lorsque l’utilisateur démarre une opération de glissement :

Lorsque l’opération de glissement entre dans une région cible :

Lorsque l’opération de glissement quitte une région cible :

Lorsque l’utilisateur libère l’élément déplacé sur une autre cible :

Lorsque l’utilisateur libère l’élément déplacé sur une cible :

Faire glisser plusieurs éléments

Si un fournisseur implémente des opérations de glisser-déplacer dans lesquelles l’utilisateur peut faire glisser plusieurs objets en même temps, le fournisseur utilise les styles source/cible ou source uniquement, comme décrit dans la section précédente, mais avec une petite différence. Lorsque l’utilisateur commence l’opération de glissement, le fournisseur crée un élément source master qui représente l’ensemble complet des éléments qui sont déplacés. L’élément source master déclenche tous les événements pour le compte de l’ensemble d’éléments déplacés ; les éléments ne déclenchent aucun événement qui leur est propre.

Lorsque l’utilisateur démarre une opération de glissement :

  • Le fournisseur crée l’élément source master.
  • L’élément source master déclenche l’événement DragStart (UIA_Drag_DragStartEventId).
  • L’élément source master affecte à la propriété IDragProvider::IsGrabbed la valeur TRUE.
  • L’élément source master met à jour la liste des éléments saisis pour inclure tous les éléments déplacés afin que la méthode GetGrabbedItems puisse récupérer la liste.

Pour ce point sur, l’élément source master exécute le même rôle que celui de l’élément source, comme décrit dans la section précédente.

Interfaces clientes pour le glisser-déplacer

UI Automation applications clientes utilisent les interfaces IUIAutomationDragPattern et IUIAutomationDropTargetPattern pour accéder aux informations de glisser-déplacer à partir des éléments d’interface utilisateur.