UIElement.PointerReleased Kejadian

Definisi

Terjadi ketika perangkat penunjuk yang sebelumnya memulai tindakan Tekan dirilis, sementara dalam elemen ini. Perhatikan bahwa akhir tindakan Tekan tidak dijamin akan mengaktifkan peristiwa PointerReleased; peristiwa lain mungkin diaktifkan sebagai gantinya. Untuk informasi selengkapnya, lihat Keterangan.

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"/>

Jenis Acara

Keterangan

Interaksi sentuhan, mouse, dan pena/stylus diterima, diproses, dan dikelola sebagai input pointer di aplikasi UWP. Salah satu interaksi ini dapat menghasilkan peristiwa PointerReleased. Untuk informasi selengkapnya, lihat Menangani input penunjuk.

Peristiwa lain alih-alih PointerReleased dapat diaktifkan di akhir tindakan— misalnya, PointerCanceled atau PointerCaptureLost. Jangan mengandalkan peristiwa PointerPressed dan PointerReleased selalu terjadi berpasangan. Agar berfungsi dengan baik, aplikasi Anda harus mendengarkan dan menangani semua peristiwa yang mungkin mewakili kesimpulan ke tindakan Tekan . Beberapa alasan mengapa Anda mungkin tidak mendapatkan kemunculan PointerReleased adalah:

  • Perbedaan dalam cara perangkat keras tertentu menangani tindakan sentuh dan tindakan Tekan
  • Penunjuk terprogram mengambil dari penunjuk yang berbeda
  • Tindakan pengguna yang mengubah hubungan area tampilan, seperti mengubah resolusi atau memantau pengaturan
  • Interaksi input seperti stylus yang menyentuh permukaan yang sama dengan tindakan sentuhan sebelumnya

Tindakan pengguna yang mengaktifkan peristiwa PointerReleased awalnya dapat mengakibatkan peristiwa Yang Diketuk , atau juga dapat mengakibatkan RightTapped dalam kondisi yang bervariasi per perangkat. Untuk informasi selengkapnya, lihat Diketuk dan Di-RightTapped.

Input mouse dikaitkan dengan satu penunjuk yang ditetapkan ketika input mouse pertama kali terdeteksi. Mengklik tombol mouse (kiri, roda, atau kanan) membuat hubungan sekunder antara penunjuk dan tombol itu melalui peristiwa PointerPressed . Peristiwa PointerReleased diaktifkan hanya ketika tombol mouse yang sama dilepaskan (tidak ada tombol lain yang dapat dikaitkan dengan penunjuk hingga peristiwa ini selesai). Karena asosiasi eksklusif ini, klik tombol mouse lainnya dirutekan melalui peristiwa PointerMoved . Anda dapat menguji status tombol mouse saat menangani peristiwa ini, seperti yang ditunjukkan dalam contoh berikut.

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 adalah peristiwa yang dirutekan. Untuk informasi selengkapnya tentang konsep peristiwa yang dirutekan, lihat Gambaran umum peristiwa dan peristiwa yang dirutekan.

Untuk tindakan sentuhan dan juga untuk peristiwa khusus interaksi atau manipulasi yang merupakan konsekuensi dari tindakan sentuhan, elemen harus di-hit-test agar dapat menjadi sumber peristiwa dan mengaktifkan peristiwa yang terkait dengan tindakan. UIElement.Visibility harus Terlihat. Properti lain dari jenis turunan juga memengaruhi visibilitas hit-test. Untuk informasi selengkapnya, lihat Gambaran umum peristiwa dan peristiwa yang dirutekan.

PointerReleased mendukung kemampuan untuk melampirkan penanganan aktivitas ke rute yang akan dipanggil bahkan jika data peristiwa untuk peristiwa ditandai Ditangani. Lihat AddHandler.

Kontrol Windows Runtime tertentu mungkin memiliki penanganan berbasis kelas untuk peristiwa input PointerReleased. Jika demikian, kontrol mungkin memiliki penimpaan untuk metode OnPointerReleased. Biasanya peristiwa ditandai ditangani oleh handler kelas, dan peristiwa PointerReleased tidak dinaikkan untuk penanganan oleh penangan kode pengguna apa pun pada kontrol tersebut. Untuk informasi selengkapnya tentang cara kerja penanganan berbasis kelas untuk peristiwa, lihat Gambaran umum peristiwa dan peristiwa yang dirutekan.

Kontrol mungkin juga memiliki animasi kepribadian PointerUpThemeAnimation yang berjalan secara independen dari acara.

Berlaku untuk

Lihat juga