EventManager.RegisterClassHandler EventManager.RegisterClassHandler EventManager.RegisterClassHandler Method

Definition

Registriert einen Klassenhandler für ein bestimmtes Routingereignis.Registers a class handler for a particular routed event.

Überlädt

RegisterClassHandler(Type, RoutedEvent, Delegate) RegisterClassHandler(Type, RoutedEvent, Delegate) RegisterClassHandler(Type, RoutedEvent, Delegate)

Registriert einen Klassenhandler für ein bestimmtes Routingereignis.Registers a class handler for a particular routed event.

RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean)

Registriert einen Klassenhandler für ein bestimmtes Routingereignis mit der Option zum Behandeln von Ereignissen, wenn Ereignisdaten bereits als behandelt gekennzeichnet sind.Registers a class handler for a particular routed event, with the option to handle events where event data is already marked handled.

RegisterClassHandler(Type, RoutedEvent, Delegate) RegisterClassHandler(Type, RoutedEvent, Delegate) RegisterClassHandler(Type, RoutedEvent, Delegate)

Registriert einen Klassenhandler für ein bestimmtes Routingereignis.Registers a class handler for a particular routed event.

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

Parameter

classType
Type Type Type

Der Typ der Klasse, die die Klassenbehandlung deklariert.The type of the class that is declaring class handling.

routedEvent
RoutedEvent RoutedEvent RoutedEvent

Der Routingereignisbezeichner des zu behandelnden Ereignisses.The routed event identifier of the event to handle.

handler
Delegate Delegate Delegate

Ein Verweis auf die Klassenhandlerimplementierung.A reference to the class handler implementation.

Beispiele

Im folgenden Beispiel wird ein Handler für PreviewMouseLeftButtonDownhinzugefügt RegisterClassHandler, der aufgerufen wird.The following example adds a handler for PreviewMouseLeftButtonDown, calling 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

Hinweise

Die Klassen Behandlung ist ein Feature, das für Routing Ereignisse verfügbar ist, einschließlich angefügter Ereignisse, die mit der Unterstützung von Routing Ereignissen implementiert werden.Class handling is a feature that is available for routed events, including attached events that are implemented with routed event backing. Ein Klassen Handler ist wie ein statischer Handler, der für alle Instanzen der-Klasse vorhanden ist.A class handler is like a static handler that exists for all instances of the class. Da der Handler statisch ist, können Sie Instanzeigenschaften nicht direkt mit einem Klassen Handler ändern. Sie können jedoch über sender den Parameter und/oder die Ereignisdaten auf Instanzen zugreifen.Because the handler is static, you cannot change instance properties directly with a class handler, but you can access instances through the sender parameter and/or the event data.

Klassen Handler werden vor Instanzhandlern aufgerufen.Class handlers are invoked before instance handlers. Sie können einen Klassen Handler implementieren, der das Verhalten hat, das Ereignis als behandelt zu markieren.You can implement a class handler that has the behavior of marking the event as handled. Daher werden Instanzhandler für ein Ereignis, das eine Klasse behandelt, nur dann aufgerufen, wenn die Instanzhandler speziell für behandelte Ereignisse registriert sind.Therefore, instance handlers for a class-handled event are not invoked unless the instance handlers register specifically for handled events.

Viele der Basiselement Ereignisse stellen virtuelle Methoden zur Klassen Behandlung bereit. WPFWPFMany of the WPFWPF base element events provide class handling virtual methods. Indem Sie diese Methoden in Klassen überschreiben, die die Basisklassen erben, können Sie die Klassen RegisterClassHandler Behandlung implementieren, ohne in statischen Konstruktoren aufrufen zu müssen.By overriding these methods in classes that inherit the base classes, you can implement class handling without calling RegisterClassHandler in static constructors. Diese Methoden zur Klassen Behandlung sind in der Regel für Eingabeereignisse vorhanden und haben Namen, die mit "on" beginnen und mit dem Namen des Ereignisses enden, das als Klasse behandelt wird.These class handling methods typically exist for input events and have names that start with "On" and end with the name of the event being class handled.

Weitere Informationen zur Klassen Behandlung finden Sie unter Markieren von Routing Ereignissen als behandelt und Klassen Behandlung.For more information about class handling, see Marking Routed Events as Handled, and Class Handling.

Mit dieser Signatur werden Klassen Handler registriert, um nur als Reaktion auf nicht behandelte Ereignisse aufzurufen.Using this signature, class handlers will be registered to invoke only in response to unhandled events. Sie können auch Klassen Handler registrieren, um auch dann aufzurufen, wenn die Ereignis Argumente als behandelt gekennzeichnet sind RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) . verwenden Sie handledEventsToo dabei die trueSignatur, wobei auf festgelegt ist.You can also register class handlers to invoke even if the event arguments are marked handled, by using the RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) signature, with handledEventsToo set to true.

RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean)

Registriert einen Klassenhandler für ein bestimmtes Routingereignis mit der Option zum Behandeln von Ereignissen, wenn Ereignisdaten bereits als behandelt gekennzeichnet sind.Registers a class handler for a particular routed event, with the option to handle events where event data is already marked handled.

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

Parameter

classType
Type Type Type

Der Typ der Klasse, die die Klassenbehandlung deklariert.The type of the class that is declaring class handling.

routedEvent
RoutedEvent RoutedEvent RoutedEvent

Der Routingereignisbezeichner des zu behandelnden Ereignisses.The routed event identifier of the event to handle.

handler
Delegate Delegate Delegate

Ein Verweis auf die Klassenhandlerimplementierung.A reference to the class handler implementation.

handledEventsToo
Boolean Boolean Boolean

true, um diesen Klassenhandler aufzurufen, auch wenn Argumente des Routingereignisses als behandelt gekennzeichnet sind, false, um das Standardverhalten beizubehalten, d. h. der Handler wird bei allen als behandelt markierten Ereignissen nicht aufgerufen.true to invoke this class handler even if arguments of the routed event have been marked as handled; false to retain the default behavior of not invoking the handler on any marked-handled event.

Hinweise

Die Klassen Behandlung ist ein Feature, das für Routing Ereignisse verfügbar ist, einschließlich angefügter Ereignisse, die mit der Unterstützung von Routing Ereignissen implementiert werden.Class handling is a feature that is available for routed events, including attached events that are implemented with routed event backing. Ein Klassen Handler ist wie ein statischer Handler, der für alle Instanzen der-Klasse vorhanden ist.A class handler is like a static handler that exists for all instances of the class. Da der Handler statisch ist, können Sie Instanzeigenschaften nicht direkt mit einem Klassen Handler ändern. Sie können jedoch über sender den Parameter und/oder die Ereignisdaten auf Instanzen zugreifen.Because the handler is static, you cannot change instance properties directly with a class handler, but you can access instances through the sender parameter and/or the event data.

Klassen Handler werden vor Instanzhandlern aufgerufen.Class handlers are invoked before instance handlers. Sie können einen Klassen Handler implementieren, der das Verhalten hat, das Ereignis als behandelt zu markieren.You can implement a class handler that has the behavior of marking the event as handled. Daher werden Instanzhandler für ein Ereignis, das eine Klasse behandelt, nur dann aufgerufen, wenn die Instanzhandler speziell für behandelte Ereignisse registriert sind.Therefore, instance handlers for a class-handled event are not invoked unless the instance handlers register specifically for handled events.

Viele der Basiselement Ereignisse stellen virtuelle Methoden zur Klassen Behandlung bereit. WPFWPFMany of the WPFWPF base element events provide class handling virtual methods. Indem Sie diese Methoden in Klassen überschreiben, die die Basisklassen erben, können Sie die Klassen RegisterClassHandler Behandlung implementieren, ohne in statischen Konstruktoren aufrufen zu müssen.By overriding these methods in classes that inherit the base classes, you can implement class handling without calling RegisterClassHandler in static constructors. Diese Methoden zur Klassen Behandlung sind in der Regel für Eingabeereignisse vorhanden und haben Namen, die mit "on" beginnen und mit dem Namen des Ereignisses enden, das als Klasse behandelt wird.These class handling methods typically exist for input events and have names that start with "On" and end with the name of the event being class handled.

Weitere Informationen zur Klassen Behandlung finden Sie unter Markieren von Routing Ereignissen als behandelt und Klassen Behandlung.For more information about class handling, see Marking Routed Events as Handled, and Class Handling.

Mithilfe dieser Signatur können Klassen Handler registriert werden, um auf behandelte Ereignisse handledEventsToo aufzurufen, indem auf truefestgelegt wird.Using this signature, class handlers can be registered to invoke upon handled events, by setting handledEventsToo set to true. Im Allgemeinen sollten Sie dies nur tun, wenn ein bekanntes Problem bei der Behandlung vorliegt, wie z. b. das Verarbeiten von Eingabe Systemen von Maus-oder Tastatur Ereignissen.Generally, you should do this only if there is a known handling issue you are trying to work around, such as input system handling from mouse or keyboard events.

Gilt für: