Padrão de controle de arrastar

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

Diretrizes e convenções de implementação

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

  • A interface IDragProvider dá suporte a dois estilos de arrastar diferentes: o estilo de origem/destino e o estilo somente origem. Você precisa escolher o estilo que funciona melhor para seus cenários de arrastar e soltar:
    • Estilo de origem/destino: Cada possível destino de soltar é representado por um elemento que implementa a interface IDropTargetProvider . Durante uma operação de arrastar, os eventos do Microsoft Automação da Interface do Usuário se originam do elemento que está sendo arrastado e dos elementos de destino suspenso.
    • Estilo somente origem: Os destinos de remoção não são representados por elementos Automação da Interface do Usuário. Durante uma operação de arrastar, os eventos se originam apenas do elemento que está sendo arrastado.
  • IDragProvider é uma interface somente leitura destinada ao monitoramento de operações de arrastar. Você não pode usá-lo para controlar uma operação de arrastar. Você pode automatizar operações de arrastar 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 origem e proibidas para uma implementação de estilo de origem/destino. Em uma implementação de estilo de origem/destino, os elementos de destino suspenso podem ser consultados para seus efeitos de soltar.
  • 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 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 de origem teria disparado no modo de origem/destino ou somente origem, enquanto nenhum dos elementos que estão sendo realmente arrastados disparam quaisquer eventos. Quando a operação de arrastar for concluída, destrua o elemento de origem do evento.
  • O elemento deve disparar eventos alterados por propriedade para as propriedades DropEffect (UIA_DragDropEffectPropertyId) e DropEffects (UIA_DragDropEffectsPropertyId) quando forem alteradas. Eventos alterados por propriedade para as outras propriedades são permitidos, mas podem ser inferidos dos eventos DragStart (UIA_Drag_DragStartEventId), DragCancel (UIA_Drag_DragCancelEventId) e DragComplete (UIA_Drag_DragCompleteEventId).

Membros necessários para IDragProvider

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

Membros necessários Tipo de membro Observações
IsGrabbed Propriedade Nenhum
Dropeffect Propriedade Necessário para uma implementação do estilo somente de origem.
DropEffects Propriedade Obrigatório se houver mais de um possível efeito de queda para o item capturado.
GetGrabbedItems Método Necessário para uma operação de arrastar de 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 com suporte

Padrão de controle DropTarget

Visão Geral de Padrões de Controle de Automação de Interface de Usuário

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

suporte Automação da Interface do Usuário para arrastar e soltar