Partager via


Faire glisser le modèle de contrôle

Fournit des instructions et des conventions pour l’implémentation du modèle de contrôle Glisser à l’aide d’IDragProvider, y compris des informations sur les propriétés et les méthodes. Le modèle de contrôle Glisser est utilisé pour prendre en charge les contrôles pouvant être glisser ou les contrôles avec des éléments pouvant faire l’objet d’un glisser-déplacer.

Conventions et directives d'implémentation

Lorsque vous implémentez le modèle de contrôle Glisser, utilisez ces instructions et conventions :

  • 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 . Au cours d’une opération de glissement, les événements Microsoft UI Automation proviennent de l’élément qui fait l’objet d’un glisser-déplacer et des éléments de la cible déroulante.
    • Style source uniquement : Les cibles de suppression ne sont pas représentées par UI Automation éléments. Pendant une opération de glissement, les événements proviennent uniquement de l’élément qui est déplacé.
  • IDragProvider est une interface en lecture seule destinée à la surveillance des opérations de glissement. Vous ne pouvez pas l’utiliser pour contrôler une opération de glissement. Vous pouvez automatiser les opérations de glissement en envoyant une entrée de souris à un contrôle.
  • La propriété IDragProvider::IsGrabbed est obligatoire.
  • 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 drop-target peuvent être interrogés pour leurs effets de suppression.
  • La propriété IDragProvider::GrabbedItems représente le glissement de plusieurs éléments. Lorsque l’utilisateur commence l’opération de glissement, 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, tandis qu’aucun des éléments réellement déplacés ne déclenche d’événements. Une fois l’opération de glissement 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 des événements DragStart (UIA_Drag_DragStartEventId), DragCancel (UIA_Drag_DragCancelEventId) et DragComplete (UIA_Drag_DragCompleteEventId) requis.

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é Obligatoire pour une implémentation du style source uniquement.
DropEffects Propriété Obligatoire s’il existe plusieurs effets de chute possibles pour l’élément saisi.
GetGrabbedItems Méthode Obligatoire pour une opération de glissement à plusieurs éléments.
UIA_Drag_DragStartEventId Événement Aucun
UIA_Drag_DragCancelEventId Événement Aucun
UIA_Drag_DragCompleteEventId Événement Aucun

 

Types de contrôles 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

UI Automation prise en charge du glisser-déplacer