Compartir a través de


UIElement.Holding Evento

Definición

Se produce cuando se produce una interacción de retención no controlada en el área de prueba de posicionamiento de este 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

Comentarios

La función táctil puede producir una acción Mantener , pero los dispositivos del mouse generalmente no pueden. Para obtener más información, consulta Controlar la entrada del puntero.

Los eventos Tapped, DoubleTapped y RightTapped solo se producen después de quitar el punto táctil. Pero el evento Holding inicial se produce mientras el punto táctil sigue en contacto. El evento se produce si el punto táctil permanece aproximadamente en la misma posición de PointerPoint durante un período de tiempo. El tiempo exacto de lo que el sistema interpreta como una acción de retención es ajustable por los usuarios a través de la configuración del sistema.

La retención está pensada para la interfaz de usuario informativa, pero para interacciones como mostrar un menú contextual, debe usar RightTapped en su lugar. Puedes controlar Holding first para mostrar una sugerencia de que aparecerá un menú, pero para mostrar el propio menú, usa un controlador RightTapped . Consulta Diseño de interacción táctil o directrices de experiencia de usuario para interacciones de usuario personalizadas para obtener más información sobre cómo usar una interacción de suspensión en el diseño de la aplicación.

Por lo general, los eventos de retención se producen en pares. Cuando la acción se interpreta por primera vez como una acción De suspensión basada en ningún movimiento durante un período de tiempo, Holding se activa, con el valor HoldingState de Started en los datos del evento HoldingRoutedEventArgs . Cuando finaliza la acción Hold , se desencadena otro evento Holding, esta vez con HoldingState de Completed o Canceled.

  • La acción Mantener finaliza con HoldingState como Completado si el usuario no mueve el puntero durante el estado De suspensión y, a continuación, libera los puntos de puntero que iniciaron la acción. En este caso, RightTapped se activa justo después del segundo evento Holding.

  • La acción Mantener finaliza con HoldingState como Cancelado si el usuario mueve los punteros que iniciaron la acción, o también para situaciones poco frecuentes, como cambiar el estado de la prueba de posicionamiento en el elemento durante la acción o capturar otro puntero. Si la acción Mantener finaliza con HoldingState como Cancelado, RightTapped no se activará.

Un evento Holding representa un gesto, mientras que un evento PointerPressed es un evento de entrada de nivel inferior. Los eventos Holding y PointerPressed se pueden desencadenar como resultado de una única interacción del usuario. Incluso si un control ya controla los eventos de puntero en la lógica de control o controla las manipulaciones, esto no impide que se active Holding.

Un evento Holding es posiblemente el resultado de más de un punto de puntero. Para los eventos de gestos de nivel superior, como Mantener, ya no tiene acceso inmediato a los detalles de PointerPoint , como los valores individuales de PointerId o las coordenadas individuales. Tienes acceso al tipo de dispositivo (PointerDeviceType) y para las coordenadas puedes llamar a GetPosition, que proporciona un promedio de las coordenadas de una suspensión desde más de un punto de puntero.

La retención es un evento enrutado. Además, un elemento debe tener IsHoldingEnabledtrue para que sea un origen de eventos Holding (true es el valor predeterminado). Es posible controlar Holding en elementos primarios aunque IsHoldingEnabled sea false en el elemento primario, si el evento se propaga a un elemento primario desde un elemento secundario de origen del evento donde IsHoldingEnabled es false. Para obtener más información sobre el concepto de eventos enrutados, consulta Información general sobre eventos y eventos enrutados.

En el caso de las acciones táctiles y también de los eventos de manipulación o específicos de la interacción que son consecuencia de una acción táctil, un elemento debe ser visible en la prueba de acceso para poder ser origen de eventos y generar el evento que está asociado a la acción. UIElement.Visibility debe ser Visible. Otras propiedades de los tipos derivados también afectan a la visibilidad de la prueba de posicionamiento. Para obtener más información, consulta Introducción a eventos y eventos enrutados.

La retención admite la capacidad de adjuntar controladores de eventos a la ruta que se invocará incluso si los datos del evento se marcan como Handled. Consulte AddHandler.

Los controles de Windows Runtime específicos pueden tener control basado en clases para el evento Holding. Si es así, es probable que el control tenga una invalidación para el método OnHolding. Para obtener más información sobre cómo funciona el control basado en clases para eventos, consulta Información general sobre eventos y eventos enrutados.

Tapped y Holding son mutuamente excluyentes. Si la acción supera el umbral de tiempo para considerarse una acción de suspensión , no se considera también una acción Pulsar .

Siempre que Holding se active inicialmente, siempre que el elemento admita eventos de manipulación a través de un valor ManipulationMode no predeterminado, ManipulationStarting también se activa. Si el punto de puntero permanece en un lugar lo suficientemente largo como para que se detecte Holding, pero a partir de entonces el usuario mueve los puntos de puntero asociados a la acción Hold sin liberarlos (lo que conduce a otro evento Holding con HoldingState como Cancelado), otros eventos de manipulación como ManipulationStarted y ManipulationDelta también se pueden activar.

Mantener presionado para la entrada del mouse y lápiz o lápiz

La entrada del mouse no genera eventos holding de forma predeterminada, independientemente de cuánto tiempo se mantenga presionado un botón del mouse o qué botón se mantiene presionado. Sin embargo, los dispositivos del mouse y algunos dispositivos de lápiz pueden activarSe a la derecha cuando se presiona y suelta un botón derecho del mouse o un equivalente.

Nota

Hay una manera de tratar las acciones del mouse como acciones de suspensión si usas tu propio GestureRecognizer y especifica HoldWithMouse en la configuración.

Se aplica a

Consulte también