Bagikan melalui


EventManager.RegisterClassHandler Metode

Definisi

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.

Berlaku untuk