Share via


UIElement.OnPreviewMouseDown(MouseButtonEventArgs) Metode

Definisi

Dipanggil ketika peristiwa rute terpasang yang tidak PreviewMouseDown tertangani mencapai elemen dalam rutenya yang berasal dari kelas ini. Terapkan metode ini untuk menambahkan penanganan kelas untuk peristiwa ini.

protected:
 virtual void OnPreviewMouseDown(System::Windows::Input::MouseButtonEventArgs ^ e);
protected virtual void OnPreviewMouseDown (System.Windows.Input.MouseButtonEventArgs e);
abstract member OnPreviewMouseDown : System.Windows.Input.MouseButtonEventArgs -> unit
override this.OnPreviewMouseDown : System.Windows.Input.MouseButtonEventArgs -> unit
Protected Overridable Sub OnPreviewMouseDown (e As MouseButtonEventArgs)

Parameter

e
MouseButtonEventArgs

MouseButtonEventArgs yang berisi data peristiwa. Data peristiwa melaporkan bahwa satu atau beberapa tombol mouse ditekan.

Keterangan

Tindakan tombol mouse juga ditangani oleh manajer input khusus. Fitur pemrograman lain yang mengandalkan tindakan tombol mouse, seperti pengikatan input dan perintah, mungkin memanggil handler untuk tindakan sebelum diekspos sebagai tindakan tombol mouse umum. Jika fitur sistem input ini menandai Mouse.PreviewMouseDown peristiwa sebagai ditangani, OnPreviewMouseDown tidak dipanggil.

Jika Anda menggunakan handler kelas ini untuk menandai peristiwa sebagai ditangani, Anda berpotensi memengaruhi peristiwa berikut: PreviewMouseLeftButtonDown dan PreviewMouseRightButtonDown. Salah satu peristiwa ini dapat dinaikkan pada elemen penerima ketika Mouse.PreviewMouseDown diterima.

Jika Anda menandai peristiwa ini sebagai ditangani dalam penanganan kelas, subevent masih dinaikkan; namun, mereka melewati status tertangani dalam data peristiwa. Jika peristiwa ditangani dalam penanganan kelas, penanganan instans untuk subevent tidak dipanggil kecuali Anda secara eksplisit menggunakan AddHandler(RoutedEvent, Delegate, Boolean) untuk handledEventsTootrue melampirkan handler. Handler kelas juga tidak dipanggil kecuali penangan kelas tersebut terdaftar dengan RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) tanda tangan dengan handledEventsTootrue. Dengan menangani OnPreviewMouseDown, Anda menyiratkan bahwa penanganan kelas Anda memperkirakan semua kemungkinan tindakan tombol mouse ke bawah. Perilaku ini mungkin tidak diinginkan; Oleh karena itu, berhati-hatilah saat Anda menggunakan metode virtual ini untuk menandai peristiwa sebagai ditangani.

Masing-masing peristiwa langsung khusus tombol juga memiliki metode Virtual On*; pertimbangkan apakah mengambil alih penangan kelas khusus tombol ini mungkin lebih tepat.

Metode ini tidak memiliki implementasi default. Karena kelas perantara dalam pewarisan mungkin menerapkan metode ini, kami sarankan Anda memanggil implementasi dasar dalam implementasi Anda.

Tujuan dari metode ini mirip dengan pola peristiwa runtime bahasa umum (CLR) Pada* metode: metode ini menyediakan sarana untuk menangani peristiwa yang cocok dari kelas turunan dengan membuat handler kelas alih-alih handler instans. Dalam hal ini peristiwa yang cocok adalah peristiwa yang dirutekan. Pola implementasi metode On* berbeda untuk peristiwa yang dirutekan karena peristiwa yang dirutekan dapat dinaikkan oleh elemen anak, yang belum tentu merupakan elemen yang akan memanggil handler. Oleh karena itu, implementasi Anda perlu memeriksa properti sumber data peristiwa. Ini seharusnya tidak mencoba untuk menyusun ulang peristiwa dalam banyak kasus.

Baik dengan menimpa metode ini atau dengan mendaftarkan penangan kelas dengan RegisterClassHandler, kelas turunan UIElement dapat memanggil metode handler kelas privat ketika peristiwa diterima di sepanjang rute peristiwa. Salah satu skenario di mana penanganan kelas sesuai adalah memanipulasi data peristiwa dan menandai peristiwa yang dirutekan sebagai ditangani. Skenario lain yang khusus untuk peristiwa Pratinjau adalah menandainya ditangani sehingga penangan kelas yang cocok tidak dipanggil.

Berlaku untuk

Lihat juga