Condividi tramite


Trascinare il modello di controllo

Fornisce linee guida e convenzioni per implementare il modello di controllo Trascinamento usando IDragProvider, incluse le informazioni sulle proprietà e sui metodi. Il modello di controllo Trascinamento viene usato per supportare controlli trascinabili o controlli con elementi trascinabili.

Linee guida e convenzioni di implementazione

Quando si implementa il modello di controllo Trascinamento , usare queste linee guida e convenzioni:

  • L'interfaccia IDragProvider supporta due stili di trascinamento diversi: lo stile di origine/destinazione e lo stile di sola origine. È necessario scegliere lo stile migliore per gli scenari di trascinamento e rilascio:
    • Stile di origine/destinazione: Ogni destinazione di rilascio possibile è rappresentata da un elemento che implementa l'interfaccia IDropTargetProvider . Durante un'operazione di trascinamento, gli eventi di Microsoft Automazione interfaccia utente provengono dall'elemento trascinato e dagli elementi di destinazione a discesa.
    • Stile solo origine: Le destinazioni di eliminazione non sono rappresentate dagli elementi Automazione interfaccia utente. Durante un'operazione di trascinamento, gli eventi provengono solo dall'elemento trascinato.
  • IDragProvider è un'interfaccia di sola lettura destinata al monitoraggio delle operazioni di trascinamento. Non è possibile usarlo per controllare un'operazione di trascinamento. È possibile automatizzare le operazioni di trascinamento inviando l'input del mouse a un controllo.
  • È necessaria la proprietà IDragProvider::IsGrabbed .
  • Le proprietà IDragProvider::D ropEffect e IDragProvider::D ropEffects sono necessarie per un'implementazione dello stile di origine e non sono consentite per un'implementazione dello stile di origine/destinazione. In un'implementazione dello stile di origine/destinazione, è possibile eseguire query sugli elementi di destinazione per i relativi effetti di eliminazione.
  • La proprietà IDragProvider::GrabbedItems rappresenta il trascinamento di più elementi. Quando l'utente inizia l'operazione di trascinamento, è necessario creare un nuovo elemento Automazione interfaccia utente da usare come elemento di origine evento. Questo nuovo elemento genera tutti gli eventi che l'elemento di origine avrebbe generato nella modalità di origine/destinazione o di origine, mentre nessuno degli elementi che vengono effettivamente trascinati genera eventi. Al termine dell'operazione di trascinamento, eliminare l'elemento origine evento.
  • L'elemento deve generare eventi modificati dalla proprietà per le proprietà DropEffect (UIA_DragDropEffectPropertyId) e DropEffects (UIA_DragDropEffectsPropertyId) quando cambiano. Gli eventi modificati dalla proprietà per le altre proprietà sono consentiti, ma possono essere dedotti dagli eventi DragStart (UIA_Drag_DragStartEventId), DragCancel (UIA_Drag_DragCancelEventId) e DragComplete (UIA_Drag_DragCompleteEventId).

Membri obbligatori per IDragProvider

Per implementare l'interfaccia IDragProvider , sono necessari i metodi e le proprietà seguenti.

Membri obbligatori Tipo di membro Note
IsGrabbed Proprietà Nessuno
DropEffect Proprietà Obbligatorio per un'implementazione dello stile di sola origine.
DropEffects Proprietà Obbligatorio se vi è più di un possibile effetto di caduta per l'elemento afferrato.
GetGrabbedItems Metodo Obbligatorio per un'operazione di trascinamento a più elementi.
UIA_Drag_DragStartEventId Evento Nessuno
UIA_Drag_DragCancelEventId Evento Nessuno
UIA_Drag_DragCompleteEventId Evento Nessuno

 

Tipi di controllo e modelli di controllo supportati

Modello di controllo DropTarget

Cenni preliminari sui pattern di controllo per l'automazione interfaccia utente

Panoramica dell'albero di automazione dell'interfaccia utente

Automazione interfaccia utente supporto per trascinamento