Share via


UIElement.PointerEntered Kejadian

Definisi

Terjadi ketika pointer memasuki area pengujian hit elemen ini.

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

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

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

Jenis Acara

Keterangan

Peristiwa ini PointerEntered diaktifkan sebagai respons terhadap penunjuk yang bergerak ke area pembatas elemen. Interaksi sentuhan, mouse, dan pena/stylus diterima, diproses, dan dikelola sebagai input pointer di aplikasi. Salah satu perangkat ini dan interaksinya dapat menghasilkan PointerEntered peristiwa. Untuk informasi selengkapnya, lihat Menangani input penunjuk dan juga keterangan lainnya dalam topik ini.

PointerEntered adalah peristiwa yang dirutekan. Untuk informasi selengkapnya tentang konsep peristiwa yang dirutekan, lihat Gambaran umum peristiwa dan peristiwa yang dirutekan.

Gunakan handler berdasarkan PointerEventHandler untuk menangani kejadian ini.

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.

PointerEntered mendukung kemampuan untuk melampirkan penanganan aktivitas ke rute yang akan dipanggil meskipun data peristiwa untuk peristiwa ditandai Ditangani. Lihat AddHandler.

Kontrol Windows Runtime tertentu mungkin memiliki penanganan berbasis kelas untuk peristiwa input PointerEntered. Jika demikian, kontrol mungkin memiliki penimpaan untuk metode OnPointerEntered. Biasanya peristiwa tidak ditandai ditangani oleh handler kelas, sehingga PointerEntered peristiwa masih dapat ditangani oleh kode pengguna Anda untuk kontrol di UI Anda. Untuk informasi selengkapnya tentang cara kerja penanganan berbasis kelas untuk peristiwa, lihat Gambaran umum peristiwa dan peristiwa yang dirutekan.

PointerEntered untuk input mouse dan pena/stylus

Perangkat input mouse memiliki kursor pada layar yang terlihat setiap kali mouse bergerak, bahkan jika tidak ada tombol mouse yang ditekan pada saat itu. Peristiwa PointerEntered akan mendahului peristiwa pertama PointerMoved yang dipicu oleh elemen . Perilaku serupa tersedia untuk input perangkat pena, di mana perangkat input dapat mendeteksi bahwa stylus melayang tepat di atas permukaan perangkat input (IsInRange) tetapi tidak menyentuhnya. Input perangkat mouse dan pena dengan demikian akan menembakkan PointerEntered peristiwa dalam kasus yang sedikit berbeda dari peristiwa sentuhan. Untuk informasi selengkapnya, lihat Interaksi mouse.

PointerEntered untuk input sentuh

Titik sentuh hanya dapat dideteksi jika jari menyentuh permukaan. Setiap kali tindakan sentuhan menghasilkan peristiwa PointerPressed , peristiwa tersebut segera didahului oleh peristiwa PointerEntered , dengan semua data peristiwa menjadi informasi yang sama untuk dua peristiwa (ID pointer yang sama, posisi yang sama, dan sebagainya.) Dengan kata lain penunjuk dianggap memasukkan elemen saat ini dan posisi elemen disentuh oleh titik sentuh.

Atau, titik sentuh akan menghasilkan PointerEntered jika pointer tetap bersentuhan konstan dengan permukaan saat bergerak, dan memasuki batas pengujian hit elemen. Untuk tindakan sentuhan semacam ini, ada kemungkinan juga bahwa tindakan dapat diproses sebagai manipulasi, atau sebagai gerakan, bukan peristiwa pointer. Untuk informasi selengkapnya, lihat Menangani input penunjuk.

Perilaku peristiwa yang dirutekan untuk PointerEntered

PointerEntered adalah peristiwa yang dirutekan. Untuk informasi selengkapnya tentang konsep peristiwa yang dirutekan, lihat Gambaran umum peristiwa dan peristiwa yang dirutekan. Anda dapat menentukan beberapa PointerEntered peristiwa untuk elemen dalam UI XAML, termasuk untuk elemen yang berada dalam hubungan induk-anak. Dalam komposisi UI yang khas, elemen anak berada di suatu tempat dalam batas elemen induk, sehingga PointerEntered peristiwa pertama-tama akan terjadi untuk induk ketika penunjuk bergerak ke induk, dan kemudian untuk anak ketika penunjuk bergerak ke sana. Peristiwa ini PointerEntered biasanya tidak menggelegak ke induk ketika elemen anak menembakkannya, karena secara konseptual penunjuk sudah berada dalam batas induk dan akan membingungkan bagi sistem input untuk merutekan PointerEntered kejadian peristiwa ke induk juga. Biasanya Anda tidak ingin PointerEntered peristiwa dirutekan, Anda hanya ingin memprosesnya dari pengirim. Anda dapat secara eksplisit mencegah perutean peristiwa dengan mengatur Ditangani ke true di handler Anda.

Dalam kasus yang jarang terjadi, Anda dapat melihat PointerEntered gelembung peristiwa ke induk. Misalnya, jika Anda telah menggunakan RenderTransform untuk mengimbangi elemen anak di luar batas induknya, peristiwa akan muncul ke induk saat elemen anak dimasukkan, dan memberikan info peristiwa seperti yang dilaporkan oleh bagaimana elemen anak menembakkan peristiwa tersebut.

Penunjuk mengambil

Jika elemen lain telah menangkap penunjuk, PointerEntered tidak akan menembak meskipun penunjuk yang ditangkap memasuki batas elemen. Namun, jika penangkapan pointer dilepaskan saat pointer berada di atas elemen , PointerEntered kemudian akan menembak, bahkan berpikir penunjuk mungkin tetap stasioner dalam hal ini. Nilai GetCurrentPoint dari data peristiwa mungkin merupakan titik di suatu tempat di tengah elemen daripada titik di sepanjang tepinya karena penunjuk sudah berada di atas elemen saat pengambilan dirilis. Untuk informasi selengkapnya tentang penangkapan pointer, lihat Interaksi CapturePointer atau Mouse.

Status visual PointerOver untuk kontrol

Kontrol yang memiliki templat kontrol dapat menerapkan status visual yang aktif hanya saat penunjuk melebihi batas kontrol. Anda tidak selalu perlu menangani PointerEntered atau PointerExited untuk mendapatkan atau mengubah perilaku ini. Anda mungkin perlu membuat templat ulang kontrol. Jika Anda berasal dari kontrol yang sudah ada yang sudah memiliki penanganan input tingkat rendah yang memanggil status visual, Anda harus memberikan status visual bernama "PointerOver" di VisualStateGroup "CommonStates", dan logika kontrol bawaan akan memuat status visual tersebut setiap kali penunjuk berada di atas kontrol. Status visual untuk pointer-over sering ada pada kontrol yang dapat dipanggil atau dipilih, seperti Tombol atau ListViewItem. Jika Anda berasal dari kelas dasar seperti Kontrol yang tidak memiliki penanganan peristiwa input bawaan yang memanggil status visual, Anda mungkin perlu mengambil alih OnPointerEntered dan OnPointerExited sendiri untuk mendapatkan perilaku ini.

Berlaku untuk

Lihat juga