Arrastrar patrón de control
Proporciona instrucciones y convenciones para implementar el patrón de control de arrastrar mediante IDragProvider, incluida la información sobre las propiedades y los métodos. El patrón de control Drag se usa para admitir controles arrastrables o controles con elementos arrastrables.
Directrices y convenciones de implementación
Al implementar el patrón de control de arrastrar, use estas directrices y convenciones:
- La interfazIDragProvider admite dos estilos de arrastre diferentes: el estilo de origen o destino y el estilo de solo origen. Debe elegir el estilo que mejor funcione para los escenarios de arrastrar y colocar:
- estilo de origen y destino: Cada destino de colocación posible se representa mediante un elemento que implementa la interfazIDropTargetProvider. Durante una operación de arrastre, los eventos de Automatización de la interfaz de usuario de Microsoft se originan en el elemento que se está arrastrando y de los elementos de destino desplegable.
- estilo de solo origen: los destinos drop no están representados por elementos de automatización de la interfaz de usuario. Durante una operación de arrastre, los eventos se originan solo desde el elemento que se está arrastrando.
- IDragProvider es una interfaz de solo lectura diseñada para supervisar las operaciones de arrastre. No se puede usar para controlar una operación de arrastre. Puede automatizar las operaciones de arrastre mediante el envío de la entrada del mouse a un control.
- Se requiere la propiedad IDragProvider::IsGrabbed.
- Las propiedades IDragProvider::D ropEffect y IDragProvider::D ropEffects son necesarias para una implementación de estilo de solo origen y están prohibidas para una implementación de estilo de origen/destino. En una implementación de estilo de origen o destino, se pueden consultar los elementos de destino desplegables para sus efectos de eliminación.
- La propiedadIDragProvider::GrabbedItems representa el arrastre de varios elementos. Cuando el usuario inicia la operación de arrastrar, debe crear un nuevo elemento de Automatización de la interfaz de usuario para que actúe como elemento de origen del evento. Este nuevo elemento desencadena todos los eventos que el elemento de origen habría desencadenado en el modo de origen/destino o de solo origen, mientras que ninguno de los elementos que realmente se arrastran desencadenan eventos. Una vez completada la operación de arrastre, destruya el elemento de origen del evento.
- El elemento debe activar eventos modificados por propiedades para las propiedades de DropEffect (UIA_DragDropEffectPropertyId) y propiedades dropEffects (UIA_DragDropEffectsPropertyId) cuando cambian. Se permiten eventos modificados por propiedades para las otras propiedades, pero se pueden deducir de los eventos necesarios DragStart (UIA_Drag_DragStartEventId), DragCancel (UIA_Drag_DragCancelEventId) y DragComplete (UIA_Drag_DragCompleteEventId).
Miembros necesarios para IDragProvider
Se requieren las siguientes propiedades y métodos para implementar la interfazIDragProvider.
Miembros necesarios | Tipo de miembro | Notas |
---|---|---|
isGrabbed | Propiedad | Ninguno |
DropEffect | Propiedad | Necesario para una implementación del estilo de solo origen. |
DropEffects | Propiedad | Obligatorio si hay más de un posible efecto de caída para el elemento capturado. |
GetGrabbedItems | Método | Necesario para una operación de arrastre de varios elementos. |
UIA_Drag_DragStartEventId | Evento | Ninguno |
UIA_Drag_DragCancelEventId | Evento | Ninguno |
UIA_Drag_DragCompleteEventId | Evento | Ninguno |
Temas relacionados
-
Introducción a los patrones de control de automatización de la interfaz de usuario de
-
Información general del árbol de automatización de la interfaz de usuario de
-
compatibilidad de automatización de la interfaz de usuario de para la de arrastrar y colocar