UIElement.PointerPressed Evento
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Ocorre quando o dispositivo de ponteiro inicia uma ação Pressionar dentro desse elemento.
public:
virtual event PointerEventHandler ^ PointerPressed;
// Register
event_token PointerPressed(PointerEventHandler const& handler) const;
// Revoke with event_token
void PointerPressed(event_token const* cookie) const;
// Revoke with event_revoker
UIElement::PointerPressed_revoker PointerPressed(auto_revoke_t, PointerEventHandler const& handler) const;
public event PointerEventHandler PointerPressed;
function onPointerPressed(eventArgs) { /* Your code */ }
uIElement.addEventListener("pointerpressed", onPointerPressed);
uIElement.removeEventListener("pointerpressed", onPointerPressed);
- or -
uIElement.onpointerpressed = onPointerPressed;
Public Custom Event PointerPressed As PointerEventHandler
<uiElement PointerPressed="eventhandler"/>
Tipo de evento
Comentários
Interações de toque, mouse e caneta/caneta são recebidas, processadas e gerenciadas como entrada de ponteiro em um aplicativo. Qualquer uma dessas interações pode produzir um PointerPressed
evento. Para obter mais informações, consulte Entrada de ponteiro de identificador. Os eventos de ponteiro são destinados a cenários em que você está interessado em vários ponteiros e suas relações, ou quando você está examinando detalhes de cada ponteiro, como a posição exata da coordenada. Caso contrário, você pode considerar o tratamento de eventos de gesto, como Tapped.
Use um manipulador baseado em PointerEventHandler para manipular esse evento.
A entrada do mouse é associada a um único ponteiro atribuído quando detectada pela primeira vez. Clicar em um botão do mouse (esquerda, roda ou direita) cria uma associação secundária entre o ponteiro e esse botão por meio do PointerPressed
evento. O evento PointerReleased é disparado somente quando esse mesmo botão do mouse é liberado (nenhum outro botão pode ser associado ao ponteiro até que o evento seja concluído). Devido a essa associação exclusiva, outros cliques em botões do mouse são roteados por meio do evento PointerMoved. Você pode testar o estado do botão do mouse ao manipular esse evento, conforme mostrado no exemplo a seguir.
Os eventos de ponteiro de um dispositivo de entrada do mouse geralmente têm a mesma PointerId nos detalhes do evento durante o tempo de vida do aplicativo.
PointerPressed
é um evento roteado. Para obter mais informações sobre o conceito de evento roteado, consulte Visão geral de eventos e eventos roteado.
Para ações de toque e também para eventos específicos de interação ou de manipulação resultantes de uma ação de toque, é preciso que o elemento esteja visível para teste de clique, para ser a origem do evento e acionar o evento associado à ação. UIElement.Visibility deve ser Visível. Outras propriedades de tipos derivados também afetam a visibilidade do teste de clique. Para saber mais, confira Visão geral de eventos e eventos roteados.
PointerPressed
dá suporte à capacidade de anexar manipuladores de eventos à rota que será invocada mesmo se os dados do evento estiverem marcados como Manipulados. Consulte AddHandler.
Controles de Windows Runtime específicos podem ter tratamento baseado em classe para o PointerPressed
evento de entrada. Nesse caso, o controle provavelmente tem uma substituição para o método OnPointerPressed. Normalmente, o evento é marcado como manipulado pelo manipulador de classe e o PointerPressed
evento não é gerado para manipulação por nenhum manipulador de código de usuário nesse controle. Por exemplo, ButtonBase tem manipulação de classe que manipula PointerPressed
e, em vez disso, dispara Clique. Para obter mais informações sobre como funciona o tratamento baseado em classe para eventos, consulte Visão geral de eventos e eventos roteado.
Os controles também podem ter uma animação de personalidade PointerDownThemeAnimation que é executada independentemente do evento.
Captura de ponteiro
PointerPressed
às vezes é usado como o evento inicial ao capturar o ponteiro, de modo que outros eventos relacionados ao ponteiro sejam todos capturados por um elemento específico, desde que o ponteiro permaneça inativo. Para capturar um ponteiro, chame o método CapturePointer em um elemento de interface do usuário específico que deve manter a captura. Isso geralmente é feito em um PointerPressed
manipulador de eventos e você chama CapturePointer
no do sender
evento. Para obter mais informações sobre como capturar um ponteiro e por que você pode querer fazer isso, consulte CapturePointer
.
PointerPressed e eventos de gesto ou eventos de manipulação
A ação do usuário que dispara um PointerPressed
evento inicialmente pode eventualmente resultar no evento Holding que representa um gesto de Espera , a menos que o dispositivo de entrada seja um mouse. Se o elemento em que PointerPressed
ocorre tiver um valor ManipulationMode não padrão, a ação também poderá resultar em vários eventos de manipulação, como ManipulationStarted. Para obter mais informações, consulte a seção "Usando eventos de manipulação" em Manipular entrada de ponteiro.
Quando PointerPressed
acionado, eventos de gesto como Tapped ainda não serão acionados porque os eventos de gesto diferentes de Holding estão aguardando o ponteiro ser liberado antes de disparar um evento.
Como regra de design geral para as interações do usuário do aplicativo, você deve examinar se há eventos específicos do controle que você pode manipular para uma interação ou eventos de gesto apropriados. Por exemplo, se o controle for um Botão, esse controle terá um evento Click especificamente destinado quando o usuário invocar a ação do botão. Ou se o elemento não for um botão, mas você estiver manipulando e evento para a ação principal de um elemento, você lidaria com Tapped.
Os eventos de gesto podem ser desabilitados especificamente em elementos individuais definindo propriedades como IsTapEnabled. Você pode desabilitar os eventos de gesto se estiver processando manipulações, mas normalmente não precisa desabilitar eventos de gestos se estiver manipulando eventos de ponteiro. Os eventos de ponteiro não podem ser desabilitados especificamente, mas você pode optar por não tratá-los.
PointerPressed e PointerReleased
Outros eventos em vez de PointerReleased podem ser acionados no final da ação, por exemplo, PointerCanceled ou PointerCaptureLost. Não confie em PointerPressed
eventos e PointerReleased
sempre ocorrendo em pares. Para funcionar corretamente, seu aplicativo deve escutar e manipular todos os eventos que representam conclusões prováveis para a ação Pressionar . Alguns dos motivos pelos quais você pode não obter uma PointerReleased
ocorrência são:
- Diferenças na forma como um hardware específico lida com ações de toque e Ações de pressionamento
- Uma captura de ponteiro programática de um ponteiro diferente
- Ações do usuário que alteram a relação da área de exibição, como alterar a resolução ou monitorar configurações
- Interações de entrada, como uma caneta tocando na mesma superfície que uma ação de toque anterior