EventManager.RegisterClassHandler Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mendaftarkan handler kelas untuk peristiwa rute tertentu.
Overload
RegisterClassHandler(Type, RoutedEvent, Delegate) |
Mendaftarkan handler kelas untuk peristiwa rute tertentu. |
RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) |
Mendaftarkan handler kelas untuk peristiwa rute tertentu, dengan opsi untuk menangani peristiwa di mana data peristiwa sudah ditandai ditangani. |
RegisterClassHandler(Type, RoutedEvent, Delegate)
Mendaftarkan handler kelas untuk peristiwa rute tertentu.
public:
static void RegisterClassHandler(Type ^ classType, System::Windows::RoutedEvent ^ routedEvent, Delegate ^ handler);
public static void RegisterClassHandler (Type classType, System.Windows.RoutedEvent routedEvent, Delegate handler);
static member RegisterClassHandler : Type * System.Windows.RoutedEvent * Delegate -> unit
Public Shared Sub RegisterClassHandler (classType As Type, routedEvent As RoutedEvent, handler As Delegate)
Parameter
- classType
- Type
Jenis kelas yang mendeklarasikan penanganan kelas.
- routedEvent
- RoutedEvent
Pengidentifikasi peristiwa yang dirutekan dari peristiwa yang akan ditangani.
- handler
- Delegate
Referensi ke implementasi handler kelas.
Contoh
Contoh berikut menambahkan handler untuk PreviewMouseRightButtonDownEvent, memanggil RegisterClassHandler.
static MyEditContainer()
{
EventManager.RegisterClassHandler(typeof(MyEditContainer), PreviewMouseRightButtonDownEvent, new RoutedEventHandler(LocalOnMouseRightButtonDown));
}
internal static void LocalOnMouseRightButtonDown(object sender, RoutedEventArgs e)
{
MessageBox.Show("this is invoked before the On* class handler on UIElement");
//e.Handled = true; //uncommenting this would cause ONLY the subclass' class handler to respond
}
Shared Sub New()
EventManager.RegisterClassHandler(GetType(MyEditContainer), PreviewMouseRightButtonDownEvent, New RoutedEventHandler(AddressOf LocalOnMouseRightButtonDown))
End Sub
Friend Shared Sub LocalOnMouseRightButtonDown(ByVal sender As Object, ByVal e As RoutedEventArgs)
MessageBox.Show("this is invoked before the On* class handler on UIElement")
'e.Handled = True //uncommenting this would cause ONLY the subclass' class handler to respond
End Sub
Keterangan
Penanganan kelas adalah fitur yang tersedia untuk peristiwa yang dirutekan, termasuk peristiwa terlampir yang diterapkan dengan dukungan peristiwa yang dirutekan. Handler kelas seperti handler statis yang ada untuk semua instans kelas. Karena handler statis, Anda tidak dapat mengubah properti instans secara langsung dengan handler kelas, tetapi Anda dapat mengakses instans melalui sender
parameter dan/atau data peristiwa.
Handler kelas dipanggil sebelum handler instans. Anda dapat mengimplementasikan handler kelas yang memiliki perilaku menandai peristiwa sebagai ditangani. Oleh karena itu, handler instans untuk peristiwa yang ditangani kelas tidak dipanggil kecuali penangan instans mendaftar khusus untuk peristiwa yang ditangani.
Banyak peristiwa elemen dasar WPF menyediakan metode virtual penanganan kelas. Dengan mengesampingkan metode ini di kelas yang mewarisi kelas dasar, Anda dapat menerapkan penanganan kelas tanpa memanggil RegisterClassHandler konstruktor statis. Metode penanganan kelas ini biasanya ada untuk peristiwa input dan memiliki nama yang dimulai dengan "Aktif" dan diakhbungi dengan nama peristiwa yang ditangani kelas.
Untuk informasi selengkapnya tentang penanganan kelas, lihat Menandai Peristiwa Yang Dirutekan sebagai Ditangani, dan Penanganan Kelas.
Dengan menggunakan tanda tangan ini, penangan kelas akan didaftarkan untuk memanggil hanya sebagai respons terhadap peristiwa yang tidak tertangani. Anda juga dapat mendaftarkan penangan kelas untuk dipanggil meskipun argumen peristiwa ditandai ditangani, dengan menggunakan RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) tanda tangan, dengan handledEventsToo
diatur ke true
.
Berlaku untuk
RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean)
Mendaftarkan handler kelas untuk peristiwa rute tertentu, dengan opsi untuk menangani peristiwa di mana data peristiwa sudah ditandai ditangani.
public:
static void RegisterClassHandler(Type ^ classType, System::Windows::RoutedEvent ^ routedEvent, Delegate ^ handler, bool handledEventsToo);
public static void RegisterClassHandler (Type classType, System.Windows.RoutedEvent routedEvent, Delegate handler, bool handledEventsToo);
static member RegisterClassHandler : Type * System.Windows.RoutedEvent * Delegate * bool -> unit
Public Shared Sub RegisterClassHandler (classType As Type, routedEvent As RoutedEvent, handler As Delegate, handledEventsToo As Boolean)
Parameter
- classType
- Type
Jenis kelas yang mendeklarasikan penanganan kelas.
- routedEvent
- RoutedEvent
Pengidentifikasi peristiwa yang dirutekan dari peristiwa yang akan ditangani.
- handler
- Delegate
Referensi ke implementasi handler kelas.
- handledEventsToo
- Boolean
true
untuk memanggil handler kelas ini meskipun argumen peristiwa yang dirutekan telah ditandai sebagai ditangani; false
untuk mempertahankan perilaku default untuk tidak memanggil handler pada peristiwa yang ditangani yang ditandai.
Keterangan
Penanganan kelas adalah fitur yang tersedia untuk peristiwa yang dirutekan, termasuk peristiwa terlampir yang diterapkan dengan dukungan peristiwa yang dirutekan. Handler kelas seperti handler statis yang ada untuk semua instans kelas. Karena handler statis, Anda tidak dapat mengubah properti instans secara langsung dengan handler kelas, tetapi Anda dapat mengakses instans melalui sender
parameter dan/atau data peristiwa.
Handler kelas dipanggil sebelum handler instans. Anda dapat mengimplementasikan handler kelas yang memiliki perilaku menandai peristiwa sebagai ditangani. Oleh karena itu, handler instans untuk peristiwa yang ditangani kelas tidak dipanggil kecuali penangan instans mendaftar khusus untuk peristiwa yang ditangani.
Banyak peristiwa elemen dasar WPF menyediakan metode virtual penanganan kelas. Dengan mengesampingkan metode ini di kelas yang mewarisi kelas dasar, Anda dapat menerapkan penanganan kelas tanpa memanggil RegisterClassHandler konstruktor statis. Metode penanganan kelas ini biasanya ada untuk peristiwa input dan memiliki nama yang dimulai dengan "Aktif" dan diakhbungi dengan nama peristiwa yang ditangani kelas.
Untuk informasi selengkapnya tentang penanganan kelas, lihat Menandai Peristiwa Yang Dirutekan sebagai Ditangani, dan Penanganan Kelas.
Dengan menggunakan tanda tangan ini, penangan kelas dapat didaftarkan untuk dipanggil pada peristiwa yang ditangani, dengan mengatur handledEventsToo
diatur ke true
. Umumnya, Anda harus melakukan ini hanya jika ada masalah penanganan yang diketahui yang coba Anda kerjakan, seperti penanganan sistem input dari peristiwa mouse atau keyboard.