Arrastrar patrón de control

Proporciona instrucciones y convenciones para implementar el patrón de control drag mediante IDragProvider, incluida información sobre las propiedades y los métodos. El patrón de control de arrastre se usa para admitir controles arrastrables o controles con elementos arrastrables.

Directrices y convenciones de implementación

Al implementar el patrón de control Arrastrar , use estas directrices y convenciones:

  • La interfaz IDragProvider admite dos estilos de arrastre diferentes: el estilo de origen/destino y el estilo de solo origen. Debe elegir el estilo que mejor funcione para los escenarios de arrastrar y colocar:
    • Estilo de origen/destino: Cada destino de colocación posible se representa mediante un elemento que implementa la interfaz IDropTargetProvider . Durante una operación de arrastre, Microsoft Automatización de la interfaz de usuario eventos se originan en el elemento que se está arrastrando y de los elementos de destino de colocación.
    • Estilo de solo origen: Los destinos de colocación no se representan mediante Automatización de la interfaz de usuario elementos. Durante una operación de arrastre, los eventos solo se originan en 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 enviando la entrada del mouse a un control.
  • Se requiere la propiedad IDragProvider::IsGrabbed .
  • Las propiedades IDragProvider::D ropEffect e 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 o de destino. En una implementación de estilo de origen o destino, se pueden consultar los elementos drop-target para sus efectos de eliminación.
  • La propiedad IDragProvider::GrabbedItems representa el arrastre de varios elementos. Cuando el usuario inicia la operación de arrastre, debe crear un nuevo elemento 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 se están arrastrando desencadena ningún evento. 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 DropEffect (UIA_DragDropEffectPropertyId) y DropEffects (UIA_DragDropEffectsPropertyId) cuando cambien. Se permiten eventos modificados por propiedades para las otras propiedades, pero se pueden deducir de los eventos 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 interfaz IDragProvider .

Miembros requeridos Tipo de miembro Notas
IsGrabbed Propiedad None
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 None
UIA_Drag_DragCancelEventId Evento None
UIA_Drag_DragCompleteEventId Evento None

 

Tipos de control y sus patrones de control admitidos

Patrón de control DropTarget

Información general acerca de los patrones de control de UI Automation

Información general sobre el árbol de la UI Automation

Automatización de la interfaz de usuario compatibilidad con arrastrar y colocar