Faire glisser le modèle de contrôle

Fournit des recommandations et des conventions pour implémenter le modèle de contrôle Drag à l’aide de IDragProvider, y compris des informations sur les propriétés et les méthodes. Le modèle de contrôle Drag est utilisé pour prendre en charge les contrôles glissables ou les contrôles avec des éléments glissables.

Conventions et directives d'implémentation

Lorsque vous implémentez le modèle de contrôle Drag , utilisez les conventions et recommandations suivantes :

  • L’interface IDragProvider prend en charge deux styles de glissement différents : le style source/cible et le style source uniquement. Vous devez choisir le style qui convient le mieux à vos scénarios de glisser-déplacer :
    • Style source/cible : Chaque cible de déplacement possible est représentée par un élément qui implémente l’interface IDropTargetProvider . Pendant une opération glisser, les événements Microsoft UI Automation proviennent de l’élément qui est glissé, et des éléments de la cible de déplacement.
    • Style de la source uniquement : Les cibles de dépôt ne sont pas représentées par les éléments UI Automation. Pendant une opération glisser, les événements proviennent uniquement de l’élément qui est glissé.
  • IDragProvider est une interface en lecture seule destinée à la surveillance des opérations de glisser-déplacer. Vous ne pouvez pas l’utiliser pour contrôler une opération glisser. Vous pouvez automatiser les opérations glisser-déplacer en envoyant une entrée de souris à un contrôle.
  • La propriété IDragProvider :: IsGrabbed est requise.
  • Les propriétés IDragProvider ::D ropeffect et IDragProvider ::D ropeffects sont requises pour une implémentation de style source uniquement et interdites pour une implémentation de style source/cible. Dans une implémentation de style source/cible, les éléments de cible de déplacement peuvent être interrogés pour leurs effets de suppression.
  • La propriété IDragProvider :: GrabbedItems représente le déplacement de plusieurs éléments. Lorsque l’utilisateur commence l’opération glisser, vous devez créer un nouvel élément UI Automation pour servir d’élément source d’événement. Ce nouvel élément déclenche tous les événements que l’élément source aurait déclenchés en mode source/cible ou source uniquement, alors qu’aucun des éléments en cours de glissement ne déclenche aucun événement. Lorsque l’opération glisser est terminée, détruisez l’élément source de l’événement.
  • L’élément doit déclencher des événements de modification de propriété pour les propriétés DropEffect (UIA _ DragDropEffectPropertyId) et DropEffects (UIA _ DragDropEffectsPropertyId) lorsqu’elles changent. Les événements de modification de propriété pour les autres propriétés sont autorisés, mais peuvent être déduits à partir des événements requis DragStart (UIA _ Drag _ DragStartEventId), DragCancel (UIA _ Drag _ DragCancelEventId) et DragComplete (UIA _ Drag _ DragCompleteEventId).

Membres requis pour IDragProvider

Les propriétés et méthodes suivantes sont requises pour implémenter l’interface IDragProvider .

Membres nécessaires Type de membre Notes
IsGrabbed Propriété Aucun
DropEffect Propriété Requis pour une implémentation du style source uniquement.
DropEffects Propriété Obligatoire s’il y a plus d’un effet de dépôt possible pour l’élément retiré.
GetGrabbedItems Méthode Requis pour une opération glisser sur plusieurs éléments.
UIA _ faire glisser _ DragStartEventId Événement Aucun
UIA _ faire glisser _ DragCancelEventId Événement Aucun
UIA _ faire glisser _ DragCompleteEventId Événement Aucun

 

Types de contrôle et leurs modèles de contrôle pris en charge

Modèle de contrôle DropTarget

Vue d'ensemble des modèles de contrôle UI Automation

Vue d’ensemble de l’arborescence UI Automation

Prise en charge d’UI Automation pour le glisser-déplacer