Share via


Mouse.MouseDown Kejadian Terlampir

Definisi

Terjadi ketika tombol tetikus tertekan.

see AddMouseDownHandler, and RemoveMouseDownHandler
see AddMouseDownHandler, and RemoveMouseDownHandler
see AddMouseDownHandler, and RemoveMouseDownHandler

Keterangan

Untuk menentukan tombol mouse mana yang tertekan, periksa ChangedButton properti di yang MouseButtonEventArgs diteruskan ke handler.

Ini adalah peristiwa terlampir. WPF mengimplementasikan peristiwa yang dilampirkan sebagai peristiwa yang dirutekan. Peristiwa terlampir pada dasarnya adalah konsep bahasa XAML untuk mereferensikan peristiwa yang dapat ditangani pada objek yang tidak menentukan peristiwa tersebut, yang diperluas WPF dengan juga memungkinkan peristiwa melintasi rute. Peristiwa terlampir tidak memiliki sintaks penanganan langsung dalam kode; untuk melampirkan handler untuk peristiwa yang dirutekan dalam kode, Anda menggunakan metode Add*Handler yang ditunjuk. Untuk detailnya, lihat Gambaran Umum Peristiwa Terlampir.

Kerangka kerja Windows Presentation Foundation (WPF) dibangun pada acara terlampir ini dengan memunculkannya sebagai dua peristiwa runtime bahasa umum (CLR) yang berbeda pada UIElement dan ContentElement: MouseLeftButtonDown dan MouseRightButtonDown. Implementasi ini menangani peristiwa yang mendasar MouseDown dan membaca argumen peristiwa untuk menentukan apakah tombol mouse kiri atau kanan terlibat. Untuk mouse tiga tombol, tidak ada dukungan peristiwa tingkat kerangka kerja untuk tombol tengah. Anda harus menggunakan MouseDown peristiwa dan memeriksa status MiddleButton dalam argumen peristiwa.

Penting

Beberapa ContentElement kelas turunan yang memiliki perilaku seperti kontrol, misalnya, Hyperlink, mungkin memiliki penanganan kelas yang melekat untuk peristiwa tombol mouse. Peristiwa tombol mouse kiri ke bawah adalah peristiwa yang paling mungkin memiliki penanganan kelas dalam kontrol. Penanganan kelas sering menandai peristiwa kelas yang mendasar Mouse sebagai ditangani. Setelah peristiwa ditandai ditangani, handler instans lain yang dilampirkan ke elemen tersebut biasanya tidak dinaikkan. Setiap penangan kelas atau instans lain yang melekat pada elemen ke arah gelembung menuju akar di pohon UI juga biasanya tidak dinaikkan.

Anda dapat mengatasi masalah yang diuraikan dalam Catatan penting sebelumnya dan masih menerima MouseDown peristiwa untuk peristiwa tombol mouse kiri ke bawah pada kelas turunan yang memiliki penanganan kelas dengan menggunakan salah satu solusi ini:

  • Lampirkan handler untuk PreviewMouseDown peristiwa, yang tidak ditandai sebagai ditangani oleh kontrol. Perhatikan bahwa karena ini adalah peristiwa pratinjau, rute dimulai di akar dan terowongan turun ke kontrol.

  • Daftarkan handler pada kontrol secara prosedural dengan memanggil AddHandler dan memilih opsi tanda tangan yang memungkinkan penangan mendengarkan peristiwa meskipun sudah ditandai sebagai ditangani dalam data peristiwa yang dirutekan.

Untuk peristiwa rute yang terkait dengan mouse, berhati-hatilah tentang bagaimana atau kapan Anda menandainya ditangani. Kesulitan dalam membuat pilihan yang sesuai tentang apakah elemen induk juga harus diberitahu tentang tindakan mouse tertentu sebenarnya mengapa kerangka kerja WPF memilih model memiliki peristiwa yang dirutekan mouse yang mendasar muncul sebagai peristiwa CLR di sepanjang rute. Masalah serupa ada dengan penerowongan peristiwa mouse. Haruskah Anda menangani peristiwa dan tidak menanganinya oleh anak-anak lebih lanjut terhadap sumbernya, dan bagaimana hal itu akan memengaruhi penggusuran kontrol di mana potongan-potongan komposit mungkin memiliki perilaku mouse yang diharapkan?

Informasi Peristiwa Yang Dirutekan

Bidang pengidentifikasi MouseDownEvent
Strategi perutean Menggelegak
Delegasikan MouseButtonEventHandler

Berlaku untuk