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 |
Tópicos relacionados
-
Visão Geral de Padrões de Controle de Automação de Interface de Usuário
-
suporte Automação da Interface do Usuário para arrastar e soltar