UIElement.Holding Evento

Definição

Ocorre quando ocorre uma interação hold sem tratamento na área de teste de ocorrência desse elemento.

public:
 virtual event HoldingEventHandler ^ Holding;
// Register
event_token Holding(HoldingEventHandler const& handler) const;

// Revoke with event_token
void Holding(event_token const* cookie) const;

// Revoke with event_revoker
UIElement::Holding_revoker Holding(auto_revoke_t, HoldingEventHandler const& handler) const;
public event HoldingEventHandler Holding;
function onHolding(eventArgs) { /* Your code */ }
uIElement.addEventListener("holding", onHolding);
uIElement.removeEventListener("holding", onHolding);
- or -
uIElement.onholding = onHolding;
Public Custom Event Holding As HoldingEventHandler 
<uiElement Holding="eventhandler"/>

Tipo de evento

Comentários

O touch pode produzir uma ação holding , mas os dispositivos do mouse geralmente não podem. Para obter mais informações, consulte a entrada do ponteiro Handle.

Os eventos Tapped, DoubleTapped e RightTapped ocorrem somente depois que o ponto de toque é removido. Mas o evento de Holding inicial ocorre enquanto o ponto de toque ainda está em contato. O evento ocorrerá se o ponto de toque permanecer aproximadamente na mesma posição do PointerPoint por um período de tempo. O tempo exato do que o sistema interpreta como uma ação de retenção é ajustável pelos usuários por meio das configurações do sistema.

A retenção destina-se à interface do usuário informativa, mas para interações como exibir um menu de contexto, você deve usar RightTapped . Você pode manipular a holding primeiro para exibir uma dica de que um menu será exibido, mas para exibir o menu em si, use um manipulador RightTapped . Consulte as diretrizes de design de interação por toque ou UX para interações personalizadas do usuário para obter mais informações sobre como usar uma interação hold no design do aplicativo.

A realização de eventos geralmente ocorre em pares. Quando a ação é interpretada pela primeira vez como uma ação Hold com base em nenhum movimento por um período de tempo, a holding dispara, com o valor HoldingState de Started nos dados de evento HoldingRoutedEventArgs . Quando a ação Hold terminar, outro evento holding será acionado, desta vez com HoldingState de Concluído ou Cancelado.

  • A ação Hold termina com HoldingState como Concluído se o usuário não mover o ponteiro durante o estado De espera e, em seguida, libera os pontos de ponteiro que iniciaram a ação. Para esse caso, RightTapped é acionado logo após o segundo evento holding.

  • A ação Detenção termina com HoldingState como Cancelado se o usuário mover os ponteiros que iniciaram a ação ou também para situações incomuns, como alterar o status do hit-test no elemento durante a ação ou capturar outro ponteiro. Se a ação Hold terminar com HoldingState como Cancelado, RightTapped não será acionado.

Um evento Holding representa um gesto, enquanto um evento PointerPressed é um evento de entrada de nível inferior. Os eventos Holding e PointerPressed podem ser acionados como resultado de uma única interação do usuário. Mesmo que um controle já esteja tratando eventos de ponteiro na lógica de controle ou esteja tratando manipulações, isso não impede a retenção de disparar.

Um evento holding é potencialmente o resultado de mais de um ponto de ponteiro. Para os eventos de gesto de nível superior, como Manter você não tem mais acesso imediato aos detalhes do PointerPoint , como valores de PointerId individuais ou coordenadas individuais. Você tem acesso ao tipo de dispositivo (PointerDeviceType) e para coordenadas você pode chamar GetPosition, o que fornece uma média das coordenadas para um Hold de mais de um ponto de ponteiro.

A realização é um evento roteado. Além disso, um elemento deve ter IsHoldingEnabledverdadeiro para ser uma fonte de evento Holding (true é o padrão). É possível lidar com a retenção em elementos pai mesmo se IsHoldingEnabled for false no elemento pai, se o evento estiver em bolhas para um pai de um elemento filho de origem do evento em que IsHoldingEnabled é falso. Para obter mais informações sobre o conceito de evento roteado, consulte Eventos e visão geral de eventos roteado.

Para que um elemento possa ser a origem de ações de toque, bem como de eventos específicos de interação ou manipulação que são consequências de uma ação de toque, ele deve ser visível ao teste de toque para ser o gatilho e disparar o evento associado à ação. UIElement.Visibility deve ser visível. Outras propriedades de tipos derivados também afetam a visibilidade do hit-test. Para saber mais, confira Visão geral de eventos e eventos roteados.

A retenção 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 Windows Runtime específicos podem ter tratamento baseado em classe para o evento Holding. Nesse caso, o controle provavelmente terá uma substituição para o método OnHolding. Para obter mais informações sobre como o tratamento baseado em classe para eventos funciona, consulte a visão geral de eventos e eventos roteado.

Tapped e Holding são mutuamente exclusivos. Se a ação passar o limite de tempo para ser considerada uma ação de retenção , ela também não será considerada uma ação de toque .

Sempre que a Retenção é acionada inicialmente, desde que o elemento dê suporte a eventos de manipulação por meio de um valor ManipulationMode não padrão, o ManipulationStarting também é acionado. Se o ponto de ponteiro permanecer em um lugar tempo suficiente para que a Holding seja detectada, mas depois disso o usuário move os pontos de ponteiro associados à ação Hold sem liberá-los (levando a outro evento Holding com HoldingState como Cancelado), outros eventos de manipulação como ManipulationStarted e ManipulationDelta também poderão ser acionados.

Segurando a entrada de mouse e caneta/caneta

A entrada do mouse não produz eventos holding por padrão, independentemente de quanto tempo um botão do mouse é mantido ou qual botão é mantido. No entanto, dispositivos de mouse e alguns dispositivos de caneta podem disparar RightTapped quando um botão direito do mouse ou equivalente é pressionado e liberado.

Note

Há uma maneira de tratar as ações do mouse como ações de retenção se você usar seu próprio GestureRecognizer e especificar HoldWithMouse nas configurações.

Aplica-se a

Confira também