UIElement.PointerPressed Evento
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Se produce cuando el dispositivo de puntero inicia una acción Press dentro de este 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
Comentarios
Las interacciones táctiles, del mouse y del lápiz/lápiz se reciben, procesan y administran como entrada de puntero en una aplicación. Cualquiera de estas interacciones puede producir un PointerPressed
evento. Para obtener más información, consulta Controlar la entrada del puntero. Los eventos de puntero están diseñados para escenarios en los que está interesado en varios punteros y sus relaciones, o cuando se examinan detalles de cada puntero, como la posición de coordenada exacta. De lo contrario, puede considerar la posibilidad de controlar eventos de gestos como Tapped.
Use un controlador basado en PointerEventHandler para controlar este evento.
La entrada de mouse se asocia con un solo puntero que se asigna cuando se detecta por primera vez la entrada. Al hacer clic en un botón del mouse (izquierda, rueda o derecha), se crea una asociación secundaria entre el puntero y ese botón a través del PointerPressed
evento. El evento PointerReleased solo se desencadena cuando se libera ese mismo botón del mouse (no se puede asociar ningún otro botón con el puntero hasta que se complete este evento). Debido a esta asociación exclusiva, los clics de otros botones del mouse se enrutan a través del evento PointerMoved. Puede probar el estado del botón del mouse al controlar este evento, como se muestra en el ejemplo siguiente.
Los eventos de puntero de un dispositivo de entrada del mouse suelen tener el mismo PointerId en los detalles del evento durante la vigencia de la aplicación.
PointerPressed
es un evento enrutado. Para obtener más información sobre el concepto de evento enrutado, 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 las pruebas de posicionamiento. Para obtener más información, consulta Introducción a eventos y eventos enrutados.
PointerPressed
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 Windows Runtime específicos pueden tener control basado en clases para el PointerPressed
evento de entrada. Si es así, el control probablemente tiene una invalidación para el método OnPointerPressed. Normalmente, el controlador de clases marca el evento y ningún PointerPressed
controlador de código de usuario genera el evento para controlarlo. Por ejemplo, ButtonBase tiene control de clases que controla PointerPressed
y, en su lugar, activa Click. Para obtener más información sobre cómo funciona el control basado en clases de eventos, consulte Información general sobre eventos y eventos enrutados.
Los controles también pueden tener una animación de personalidad PointerDownThemeAnimation que se ejecuta independientemente del evento.
Captura de puntero
PointerPressed
a veces se usa como evento de inicio al capturar el puntero, de modo que todos los eventos relacionados con el puntero se capturen por un elemento determinado siempre que el puntero permanezca inactivo. Para capturar un puntero, llame al método CapturePointer en un elemento de interfaz de usuario específico que debe mantener la captura. Normalmente, esto se realiza dentro de un PointerPressed
controlador de eventos y se llama CapturePointer
a en el evento .sender
Para obtener más información sobre cómo capturar un puntero y por qué es posible que quiera hacerlo, consulte CapturePointer
.
Eventos pointerPressed y de gestos, o eventos de manipulación
La acción del usuario que activa un PointerPressed
evento inicialmente puede dar lugar al evento Holding que representa un gesto de suspensión, a menos que el dispositivo de entrada sea un mouse. Si el elemento donde PointerPressed
se produce tiene un valor ManipulationMode no predeterminado, la acción también podría dar lugar a varios eventos de manipulación como ManipulationStarted. Para obtener más información, consulte la sección "Uso de eventos de manipulación" en Controlar la entrada del puntero.
Cuando PointerPressed
se activa, los eventos de gestos como Tapped aún no se activarán porque los eventos de gesto que no sean Holding están esperando a que el puntero se libere antes de desencadenar un evento.
Como regla de diseño general para las interacciones del usuario de la aplicación, debes examinar si hay eventos específicos del control que puedes controlar para una interacción o los eventos de gestos adecuados. Por ejemplo, si el control es un Button, ese control tiene un evento Click que está diseñado específicamente para cuando el usuario invoca la acción del botón. O bien, si el elemento no es un botón, pero está controlando y evento para la acción principal de un elemento, controlaría Tapped.
Los eventos de gestos se pueden deshabilitar específicamente en elementos individuales estableciendo propiedades como IsTapEnabled. Es posible que deshabilite los eventos de gestos si está procesando manipulaciones, pero normalmente no es necesario deshabilitar eventos de gestos si está controlando eventos de puntero. Los eventos de puntero no se pueden deshabilitar específicamente, pero puede optar por no controlarlos.
PointerPressed y PointerReleased
Otros eventos en lugar de PointerReleased pueden activarse al final de la acción( por ejemplo, PointerCanceled o PointerCaptureLost. No confíes en PointerPressed
eventos y PointerReleased
siempre se produzcan en pares. Para funcionar correctamente, la aplicación debe escuchar y controlar todos los eventos que representan las conclusiones probables de la acción Presionar . Algunas de las razones por las que es posible que no obtenga una PointerReleased
repetición son:
- Diferencias en el modo en que el hardware específico controla las acciones táctiles y Las acciones de prensa
- Captura de puntero mediante programación desde un puntero diferente
- Acciones de usuario que cambian la relación del área de visualización, como cambiar la resolución o la configuración del monitor
- Interacciones de entrada, como un lápiz óptico que toca la misma superficie que una acción táctil anterior