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

O Microsoft Automação da Interface do Usuário define dois padrões de controle para dar suporte a cenários de arrastar e soltar, o padrão de controle Arrastar e o padrão de controle DropTarget. Você implementa o padrão de controle Arrastar para um elemento que pode ser arrastado e o padrão de controle DropTarget para um elemento que pode receber um elemento arrastado; ou seja, um destino de soltar. Os dois padrões de controle expõem informações que uma tecnologia adaptativa pode usar para ajudar um usuário de acessibilidade a concluir uma operação de arrastar e soltar.

Estilos de arrastar

Ao implementar o padrão de controle Arrastar para um elemento arrastável, você precisa decidir se deseja implementar o estilo de arrastar de origem/destino ou o estilo de arrastar somente origem .

Estilo de origem/destino

No estilo de origem/destino de arrastar e soltar, o elemento arrastado (a "origem") e o elemento drop-target (o "destino") são distintos e cada um gera um conjunto distinto de eventos. Aqui está o ciclo de vida de uma operação de arrastar que usa o estilo de origem/destino:

Quando o usuário inicia uma operação de arrastar:

Quando a operação de arrastar entra em uma região de destino:

Quando a operação de arrastar deixa uma região de destino:

Quando o usuário libera o item arrastado sobre um não-destino:

Quando o usuário libera o item arrastado sobre um destino:

Os eventos dos objetos de origem e de destino estão intimamente relacionados, mas distintos. Os dados sobre o que está sendo arrastado vêm da origem, enquanto os dados sobre "o que poderia acontecer" e "o que aconteceu" vêm do destino.

Quando uma operação de arrastar está em andamento, o item arrastado pode ser arrastado para dentro e para fora das regiões de destino várias vezes antes da conclusão da operação.

Qualquer destino de descarte que precise atualizar sua propriedade IDropTargetProvider::D ropTargetEffect em tempo real deve gerar um evento de propriedade adicional alterado nessa propriedade.

Estilo somente origem

O estilo de arrastar somente origem permite que um provedor evite implementar destinos de soltar. Não implementar destinos de descarte ajuda a reduzir o custo de implementação, mas não fornece aos aplicativos cliente de acessibilidade nenhuma informação sobre o objeto que recebeu a queda. Aqui está o ciclo de vida de uma operação de arrastar que usa o estilo somente de origem:

Quando o usuário inicia uma operação de arrastar:

Quando a operação de arrastar entra em uma região de destino:

Quando a operação de arrastar deixa uma região de destino:

Quando o usuário libera o item arrastado sobre um não-destino:

Quando o usuário libera o item arrastado sobre um destino:

Arrastando vários itens

Se um provedor implementar operações de arrastar e soltar em que o usuário pode arrastar vários objetos ao mesmo tempo, o provedor usará os estilos de origem/destino ou somente origem, conforme descrito na seção anterior, mas com uma pequena diferença. Quando o usuário inicia a operação de arrastar, o provedor cria um elemento de origem master que representa o conjunto completo de itens que estão sendo arrastados. O elemento de origem master gera todos os eventos em nome do conjunto de itens arrastados; os itens não geram eventos próprios.

Quando o usuário inicia uma operação de arrastar:

  • O provedor cria o elemento de origem master.
  • O elemento de origem master gera o evento DragStart (UIA_Drag_DragStartEventId).
  • O elemento de origem master define a propriedade IDragProvider::IsGrabbed comoTRUE.
  • O elemento de origem master atualiza a lista de itens capturados para incluir todos os itens sendo arrastados para que o método GetGrabbedItems possa recuperar a lista.

Para esse ponto em diante, o elemento de origem master executa a mesma função que a do elemento de origem, conforme descrito na seção anterior.

Interfaces do cliente para arrastar e soltar

Automação da Interface do Usuário aplicativos cliente usam as interfaces IUIAutomationDragPattern e IUIAutomationDropTargetPattern para acessar informações de arrastar e soltar de elementos da interface do usuário.