UIElement.PointerReleased Evento

Definición

Se produce cuando se libera el dispositivo de puntero que inició previamente una acción Press , mientras se encuentra dentro de este elemento. Tenga en cuenta que no se garantiza que el final de una acción Press active un evento PointerReleased; otros eventos pueden desencadenarse en su lugar. Para obtener más información, consulta Comentarios.

public:
 virtual event PointerEventHandler ^ PointerReleased;
// Register
event_token PointerReleased(PointerEventHandler const& handler) const;

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

// Revoke with event_revoker
UIElement::PointerReleased_revoker PointerReleased(auto_revoke_t, PointerEventHandler const& handler) const;
public event PointerEventHandler PointerReleased;
function onPointerReleased(eventArgs) { /* Your code */ }
uIElement.addEventListener("pointerreleased", onPointerReleased);
uIElement.removeEventListener("pointerreleased", onPointerReleased);
- or -
uIElement.onpointerreleased = onPointerReleased;
Public Custom Event PointerReleased As PointerEventHandler 
<uiElement PointerReleased="eventhandler"/>

Tipo de evento

Comentarios

Las interacciones táctiles, del mouse y del lápiz o del lápiz se reciben, procesan y administran como entrada de puntero en la aplicación para UWP. Cualquiera de estas interacciones puede producir un evento PointerReleased. Para obtener más información, consulta Controlar la entrada del puntero.

Otros eventos en lugar de PointerReleased pueden activarse al final de la acción( por ejemplo, PointerCanceled o PointerCaptureLost. No se base en los eventos PointerPressed y PointerReleased que siempre se producen 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 repetición pointerReleased 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

La acción del usuario que activa un evento PointerReleased inicialmente puede dar lugar al evento Tapped , o también puede dar lugar a RightTapped en condiciones que varían por dispositivo. Para obtener más información, consulta Tapped y RightTapped.

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 (izquierdo, rueda o derecho), se crea una asociación secundaria entre el puntero y ese botón a través del evento PointerPressed. 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.

private void Target_PointerMoved(object sender, PointerRoutedEventArgs e)
{
    Windows.UI.Xaml.Input.Pointer ptr = e.Pointer;

    // Multiple, simultaneous mouse button inputs are processed here.
    // Mouse input is associated with a single pointer assigned when 
    // mouse input is first detected. 
    // Clicking additional mouse buttons (left, wheel, or right) during 
    // the interaction creates secondary associations between those buttons 
    // and the pointer through the pointer pressed event. 
    // The pointer released event is fired only when the last mouse button 
    // associated with the interaction (not necessarily the initial button) 
    // is released. 
    // Because of this exclusive association, other mouse button clicks are 
    // routed through the pointer move event.          
    if (ptr.PointerDeviceType == Windows.Devices.Input.PointerDeviceType.Mouse)
    {
        // To get mouse state, we need extended pointer details.
        // We get the pointer info through the getCurrentPoint method
        // of the event argument. 
        Windows.UI.Input.PointerPoint ptrPt = e.GetCurrentPoint(Target);
        if (ptrPt.Properties.IsLeftButtonPressed)
        {
            eventLog.Text += "\nLeft button: " + ptrPt.PointerId;
        }
        if (ptrPt.Properties.IsMiddleButtonPressed)
        {
            eventLog.Text += "\nWheel button: " + ptrPt.PointerId;
        }
        if (ptrPt.Properties.IsRightButtonPressed)
        {
            eventLog.Text += "\nRight button: " + ptrPt.PointerId;
        }
    }

    // Prevent most handlers along the event route from handling the same event again.
    e.Handled = true;

    // Display pointer details.
    updateInfoPop(e);
}
private void Target_PointerMoved(object sender, PointerRoutedEventArgs e)
{
    Windows.UI.Xaml.Input.Pointer ptr = e.Pointer;

    // Multiple, simultaneous mouse button inputs are processed here.
    // Mouse input is associated with a single pointer assigned when 
    // mouse input is first detected. 
    // Clicking additional mouse buttons (left, wheel, or right) during 
    // the interaction creates secondary associations between those buttons 
    // and the pointer through the pointer pressed event. 
    // The pointer released event is fired only when the last mouse button 
    // associated with the interaction (not necessarily the initial button) 
    // is released. 
    // Because of this exclusive association, other mouse button clicks are 
    // routed through the pointer move event.          
    if (ptr.PointerDeviceType == Windows.Devices.Input.PointerDeviceType.Mouse)
    {
        // To get mouse state, we need extended pointer details.
        // We get the pointer info through the getCurrentPoint method
        // of the event argument. 
        Windows.UI.Input.PointerPoint ptrPt = e.GetCurrentPoint(Target);
        if (ptrPt.Properties.IsLeftButtonPressed)
        {
            eventLog.Text += "\nLeft button: " + ptrPt.PointerId;
        }
        if (ptrPt.Properties.IsMiddleButtonPressed)
        {
            eventLog.Text += "\nWheel button: " + ptrPt.PointerId;
        }
        if (ptrPt.Properties.IsRightButtonPressed)
        {
            eventLog.Text += "\nRight button: " + ptrPt.PointerId;
        }
    }

    // Prevent most handlers along the event route from handling the same event again.
    e.Handled = true;

    // Display pointer details.
    updateInfoPop(e);
}

PointerReleased 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.

PointerReleased 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 evento de entrada PointerReleased. Si es así, el control probablemente tiene una invalidación para el método OnPointerReleased. Normalmente, el controlador de clases marca el evento y el evento PointerReleased no se genera para controlarlo ningún controlador de código de usuario en ese control. 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 PointerUpThemeAnimation que se ejecuta independientemente del evento.

Se aplica a

Consulte también