Partilhar via


Arraste o padrão de controle

Fornece diretrizes e convenções para implementar o padrão de controle Drag usando IDragProvider, incluindo informações sobre propriedades e métodos. O padrão de controle Arrastar é usado para oferecer suporte a controles arrastáveis ou controles com itens arrastáveis.

Orientações e convenções de aplicação

Ao implementar o padrão de controle Drag, use estas diretrizes e convenções:

  • A interface IDragProvider suporta dois estilos de arrasto diferentes: o estilo de origem/destino e o estilo somente de origem. Você precisa escolher o estilo que funciona melhor para seus cenários de arrastar e soltar:
    • Estilo de origem/destino: Cada destino de descarte possível é representado por um elemento que implementa a interfaceIDropTargetProvider. Durante uma operação de arrastar, os eventos de Automação da Interface do Usuário da Microsoft são originados do elemento que está sendo arrastado e dos elementos drop-target.
    • Estilo somente origem: Os destinos Drop não são representados por elementos de Automação da Interface do Usuário. Durante uma operação de arrastar, os eventos se originam somente do elemento que está sendo arrastado.
  • IDragProvider é uma interface somente leitura destinada a monitorar operações de arrasto. Não é possível usá-lo para controlar uma operação de arrastar. Você pode automatizar as operações de arrasto enviando a entrada do mouse para um controle.
  • A propriedade IDragProvider::IsGrabbed é necessária.
  • As propriedades IDragProvider::D ropEffect e IDragProvider::D ropEffects são necessárias para uma implementação de estilo somente de origem e proibidas para uma implementação de estilo de origem/destino. Em uma implementação de estilo de origem/destino, os elementos drop-target podem ser consultados quanto aos seus efeitos de drop.
  • A propriedade IDragProvider::GrabbedItems representa o arrasto de vários itens. Quando o usuário inicia a operação de arrastar, você precisa criar um novo elemento de automação da interface do usuário para servir como o elemento de origem do evento. Esse novo elemento dispara todos os eventos que o elemento source teria disparado no modo origem/destino ou somente origem, enquanto nenhum dos elementos que estão sendo arrastados dispara quaisquer eventos. Quando a operação de arrastar estiver concluída, destrua o elemento de origem do evento.
  • O elemento deve disparar eventos alterados de propriedade para as propriedades DropEffect (UIA_DragDropEffectPropertyId) e DropEffects (UIA_DragDropEffectsPropertyId) quando elas forem alteradas. Eventos alterados de propriedade para as outras propriedades são permitidos, mas podem ser inferidos a partir dos eventos necessários DragStart (UIA_Drag_DragStartEventId), DragCancel (UIA_Drag_DragCancelEventId) e DragComplete (UIA_Drag_DragCompleteEventId).

Membros necessários para IDragProvider

As propriedades e métodos a seguir são necessários para implementar o IDragProvider interface.

Membros obrigatórios Tipo de membro Observações
IsGrabbed Propriedade Nenhum
DropEffect Propriedade Necessário para uma implementação do estilo somente fonte.
DropEffects Propriedade Obrigatório se houver mais de um efeito de queda possível para o item capturado.
GetGrabbedItems Método Necessário para uma operação de arrastar vários itens.
UIA_Drag_DragStartEventId Evento Nenhum
UIA_Drag_DragCancelEventId Evento Nenhum
UIA_Drag_DragCompleteEventId Evento Nenhum

 

tipos de controle e seus padrões de controle suportados

Padrão de controle DropTarget

Visão geral dos padrões de controle de automação da interface do do usuário

Visão geral da árvore de automação da interface do usuário

Suporte de automação da interface do usuário do para arrastar e soltar