Automatización de la interfaz de usuario compatibilidad con arrastrar y colocar
Microsoft Automatización de la interfaz de usuario define dos patrones de control para admitir escenarios de arrastrar y colocar, el patrón de control Arrastrar y el patrón de control DropTarget. Se implementa el patrón de control Drag para un elemento que se puede arrastrar y el patrón de control DropTarget para un elemento que puede recibir un elemento arrastrado; es decir, un destino de colocación. Los dos patrones de control exponen información que una tecnología de asistencia puede usar para ayudar a un usuario de accesibilidad a completar una operación de arrastrar y colocar.
Arrastrar estilos
Al implementar el patrón de control Arrastrar para un elemento arrastrable, debe decidir si implementar el estilo de arrastre de origen o destino o el estilo de arrastre de solo origen.
Estilo de origen/destino
En el estilo de origen o destino de arrastrar y colocar, el elemento arrastrado (el "origen") y el elemento de destino de colocación (el "destino") son distintos y cada uno genera un conjunto distinto de eventos. Este es el ciclo de vida de una operación de arrastre que usa el estilo de origen o destino:
- Cuando el usuario inicia una operación de arrastrar:
- El origen genera el evento DragStart (UIA_Drag_DragStartEventId).
- El origen establece la propiedad IDragProvider::IsGrabbed en TRUE.
- Los destinos actualizan sus propiedades DropTargetEffect .
- El destino genera el evento DragEnter (UIA_DropTarget_DragEnterEventId).
- El destino genera el evento DragLeave (UIA_DropTarget_DragLeaveEventId).
- El origen genera el evento DragCancel (UIA_Drag_DragCancelEventId).
- El origen establece la propiedad IDragProvider::IsGrabbed enFALSE.
- El origen genera el evento DragComplete (UIA_Drag_DragCompleteEventId).
- El origen establece la propiedad IDragProvider::IsGrabbed enFALSE.
- El destino establece la propiedad IDropTargetProvider::D ropTargetEffect para indicar el efecto que se produjo.
- El destino genera el evento Dropped (UIA_DropTarget_DroppedEventId).
Cuando la operación de arrastre entra en una región de destino:
Cuando la operación de arrastre sale de una región de destino:
Cuando el usuario libera el elemento arrastrado sobre un no destino:
Cuando el usuario libera el elemento arrastrado sobre un destino:
Los eventos de los objetos de origen y destino están estrechamente relacionados, pero distintos. Los datos sobre lo que se arrastra proceden del origen, mientras que los datos sobre "lo que podría suceder" y "lo que sucedió" proceden del destino.
Cuando una operación de arrastre está en curso, el elemento arrastrado se puede arrastrar y salir de las regiones de destino cualquier número de veces antes de que se complete la operación.
Cualquier destino de colocación que necesite actualizar su propiedad IDropTargetProvider::D ropTargetEffect sobre la marcha debería generar un evento de cambio de propiedad adicional en esa propiedad.
Estilo de solo origen
El estilo de arrastre de solo origen permite a un proveedor evitar la implementación de destinos de colocación. No implementar destinos de colocación ayuda a reducir el costo de implementación, pero no proporciona a las aplicaciones cliente de accesibilidad ninguna información sobre el objeto que recibió la eliminación. Este es el ciclo de vida de una operación de arrastre que usa el estilo de solo origen:
- Cuando el usuario inicia una operación de arrastrar:
- El origen genera el evento DragStart (UIA_Drag_DragStartEventId).
- El origen establece la propiedad IDragProvider::IsGrabbed en TRUE.
- El origen establece la propiedad IDragProvider::D ropEffect en el valor adecuado.
- El origen establece la propiedad IDragProvider::D ropEffect en el valor adecuado.
- El origen genera el evento DragCancel (UIA_Drag_DragCancelEventId).
- El origen establece la propiedad IDragProvider::IsGrabbed enFALSE.
- El origen genera el evento DragComplete (UIA_Drag_DragCompleteEventId).
- El origen establece la propiedad IDragProvider::D ropEffect para indicar el efecto que tuvo lugar cuando se quitó el elemento.
Cuando la operación de arrastre entra en una región de destino:
Cuando la operación de arrastre sale de una región de destino:
Cuando el usuario libera el elemento arrastrado sobre un no destino:
Cuando el usuario libera el elemento arrastrado sobre un destino:
Arrastrar varios elementos
Si un proveedor implementa operaciones de arrastrar y colocar en las que el usuario puede arrastrar varios objetos al mismo tiempo, el proveedor usa los estilos de origen/destino o de solo origen como se describe en la sección anterior, pero con una pequeña diferencia. Cuando el usuario inicia la operación de arrastrar, el proveedor crea un elemento de origen maestro que representa el conjunto completo de elementos que se arrastran. El elemento de origen maestro genera todos los eventos en nombre del conjunto de elementos arrastrados; los elementos no generan ningún evento propio.
- Cuando el usuario inicia una operación de arrastrar:
- El proveedor crea el elemento de origen maestro.
- El elemento de origen maestro genera el evento DragStart (UIA_Drag_DragStartEventId).
- El elemento de origen maestro establece la propiedad IDragProvider::IsGrabbed enTRUE.
- El elemento de origen maestro actualiza la lista de elementos capturados para incluir todos los elementos que se arrastran para que el método GetGrabbedItems pueda recuperar la lista.
Para ese punto, el elemento de origen maestro realiza el mismo rol que el del elemento de origen como se describe en la sección anterior.
Interfaces de cliente para arrastrar y colocar
Automatización de la interfaz de usuario aplicaciones cliente usan las interfaces IUIAutomationDragPattern e IUIAutomationDropTargetPattern para acceder a la información de arrastrar y colocar desde los elementos de la interfaz de usuario.