Automazione interfaccia utente supporto per il trascinamento della selezione

Microsoft Automazione interfaccia utente definisce due modelli di controllo per supportare scenari di trascinamento della selezione, il pattern di controllo Drag e il pattern di controllo DropTarget. Implementi il pattern di controllo Drag per un elemento che può essere trascinato e il pattern di controllo DropTarget per un elemento che può ricevere un elemento trascinato; vale a dire, un obiettivo di rilascio. I due pattern di controllo espongono informazioni che un'assistive technology può usare per consentire a un utente di accessibilità di completare un'operazione di trascinamento della selezione.

Trascinamento degli stili

Quando si implementa il pattern di controllo Drag per un elemento trascinabile, è necessario decidere se implementare lo stile di trascinamento di origine/destinazione o lo stile di trascinamento di sola origine.

Stile di origine/destinazione

Nello stile di origine/destinazione del trascinamento della selezione, l'elemento trascinato (l'origine) e l'elemento di destinazione di rilascio (destinazione) sono distinti e ognuno genera un set distinto di eventi. Ecco il ciclo di vita per un'operazione di trascinamento che usa lo stile di origine/destinazione:

Quando l'utente avvia un'operazione di trascinamento:

Quando l'operazione di trascinamento entra in un'area di destinazione:

Quando l'operazione di trascinamento lascia un'area di destinazione:

Quando l'utente rilascia l'elemento trascinato su una destinazione non di destinazione:

Quando l'utente rilascia l'elemento trascinato su una destinazione:

Gli eventi degli oggetti di origine e di destinazione sono strettamente correlati, ma distinti. I dati su ciò che viene trascinato provengono dall'origine, mentre i dati su "cosa potrebbe accadere" e "cosa è accaduto" provengono dalla destinazione.

Quando è in corso un'operazione di trascinamento, l'elemento trascinato può essere trascinato all'interno e all'esterno delle aree di destinazione un numero qualsiasi di volte prima del completamento dell'operazione.

Qualsiasi destinazione di rilascio che deve aggiornare la proprietà IDropTargetProvider::D ropTargetEffect in tempo reale deve generare un evento aggiuntivo di modifica della proprietà su tale proprietà.

Stile solo origine

Lo stile di trascinamento di sola origine consente a un provider di evitare di implementare destinazioni di rilascio. L'implementazione di destinazioni di rilascio consente di ridurre il costo di implementazione, ma non fornisce alle applicazioni client di accessibilità informazioni sull'oggetto che ha ricevuto l'eliminazione. Ecco il ciclo di vita per un'operazione di trascinamento che usa lo stile di sola origine:

Quando l'utente avvia un'operazione di trascinamento:

Quando l'operazione di trascinamento entra in un'area di destinazione:

Quando l'operazione di trascinamento lascia un'area di destinazione:

Quando l'utente rilascia l'elemento trascinato su una destinazione non di destinazione:

Quando l'utente rilascia l'elemento trascinato su una destinazione:

Trascinamento di più elementi

Se un provider implementa operazioni di trascinamento della selezione in cui l'utente può trascinare più oggetti contemporaneamente, il provider usa gli stili di origine/destinazione o di origine come descritto nella sezione precedente, ma con una piccola differenza. Quando l'utente avvia l'operazione di trascinamento, il provider crea un elemento di origine master che rappresenta il set completo di elementi trascinati. L'elemento di origine master genera tutti gli eventi per conto del set di elementi trascinati; gli elementi non generano eventi personalizzati.

Quando l'utente avvia un'operazione di trascinamento:

  • Il provider crea l'elemento di origine master.
  • L'elemento di origine master genera l'evento DragStart (UIA_Drag_DragStartEventId).
  • L'elemento di origine master imposta la proprietà IDragProvider::IsGrabbed su TRUE.
  • L'elemento di origine master aggiorna l'elenco di elementi acquisiti in modo da includere tutti gli elementi trascinati in modo che il metodo GetGrabbedItems possa recuperare l'elenco.

Per tale punto, l'elemento di origine master esegue lo stesso ruolo di quello dell'elemento di origine, come descritto nella sezione precedente.

Interfacce client per trascinamento della selezione

Automazione interfaccia utente applicazioni client usano le interfacce IUIAutomationDragPattern e IUIAutomationDropTargetPattern per accedere alle informazioni di trascinamento della selezione dagli elementi dell'interfaccia utente.