EventManager.RegisterClassHandler EventManager.RegisterClassHandler EventManager.RegisterClassHandler Method

Définition

Enregistre un gestionnaire de classe pour un événement routé particulier.Registers a class handler for a particular routed event.

Surcharges

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

Enregistre un gestionnaire de classe pour un événement routé particulier.Registers a class handler for a particular routed event.

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

Enregistre un gestionnaire de classe pour un événement routé particulier, avec la possibilité de gérer des événements dans lesquels les données d'événement sont déjà marquées gérées.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)

Enregistre un gestionnaire de classe pour un événement routé particulier.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

Paramètres

classType
Type Type Type

Type de la classe qui déclare la gestion de classe.The type of the class that is declaring class handling.

routedEvent
RoutedEvent RoutedEvent RoutedEvent

Identificateur d'événement routé de l'événement à gérer.The routed event identifier of the event to handle.

handler
Delegate Delegate Delegate

Référence à l'implémentation du gestionnaire de classe.A reference to the class handler implementation.

Exemples

L’exemple suivant ajoute un gestionnaire pour PreviewMouseLeftButtonDown, l’appel RegisterClassHandler.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

Remarques

Gestion de classe est une fonctionnalité qui est disponible pour les événements routés, y compris les événements attachés qui sont implémentés avec la sauvegarde d’événement routé.Class handling is a feature that is available for routed events, including attached events that are implemented with routed event backing. Un gestionnaire de classe ressemble à un gestionnaire statique qui existe pour toutes les instances de la classe.A class handler is like a static handler that exists for all instances of the class. Étant donné que le gestionnaire est statique, vous ne pouvez pas modifier les propriétés d’instance directement avec un gestionnaire de classe, mais vous pouvez accéder aux instances via le sender paramètre et/ou les données d’événement.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.

Gestionnaires de classe sont appelés avant les gestionnaires d’instance.Class handlers are invoked before instance handlers. Vous pouvez implémenter un gestionnaire de classe qui a le comportement de marquer l’événement comme géré.You can implement a class handler that has the behavior of marking the event as handled. Par conséquent, les gestionnaires d’instance pour un événement géré à la classe ne sont pas appelés à moins que les gestionnaires d’instance inscrire spécifiquement pour les événements gérés.Therefore, instance handlers for a class-handled event are not invoked unless the instance handlers register specifically for handled events.

Un grand nombre de la WPFWPF les événements d’élément de base fournissent des méthodes virtuelles de gestion de classe.Many of the WPFWPF base element events provide class handling virtual methods. En substituant ces méthodes dans les classes qui héritent des classes de base, vous pouvez implémenter la gestion de classe sans appeler RegisterClassHandler dans les constructeurs statiques.By overriding these methods in classes that inherit the base classes, you can implement class handling without calling RegisterClassHandler in static constructors. En règle générale, ces méthodes de gestion de classe existent pour les événements d’entrée et ont des noms qui commencent par « On » et se terminent par le nom de l’événement de classe.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.

Pour plus d’informations sur la gestion de classe, consultez marquage des événements routés comme gérés et gestion de classe.For more information about class handling, see Marking Routed Events as Handled, and Class Handling.

À l’aide de cette signature, les gestionnaires de classe seront inscrit pour appeler uniquement en réponse aux événements non gérés.Using this signature, class handlers will be registered to invoke only in response to unhandled events. Vous pouvez également inscrire des gestionnaires de classe à appeler même si les arguments d’événement sont marqué comme gérés, à l’aide de la RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) signature, avec handledEventsToo défini sur true.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)

Enregistre un gestionnaire de classe pour un événement routé particulier, avec la possibilité de gérer des événements dans lesquels les données d'événement sont déjà marquées gérées.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

Paramètres

classType
Type Type Type

Type de la classe qui déclare la gestion de classe.The type of the class that is declaring class handling.

routedEvent
RoutedEvent RoutedEvent RoutedEvent

Identificateur d'événement routé de l'événement à gérer.The routed event identifier of the event to handle.

handler
Delegate Delegate Delegate

Référence à l'implémentation du gestionnaire de classe.A reference to the class handler implementation.

handledEventsToo
Boolean Boolean Boolean

true pour appeler ce gestionnaire de classe même si les arguments de l'événement routé ont été marqués comme gérés ; false pour conserver le comportement par défaut qui consiste à ne pas appeler le gestionnaire sur tout événement marqué géré.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.

Remarques

Gestion de classe est une fonctionnalité qui est disponible pour les événements routés, y compris les événements attachés qui sont implémentés avec la sauvegarde d’événement routé.Class handling is a feature that is available for routed events, including attached events that are implemented with routed event backing. Un gestionnaire de classe ressemble à un gestionnaire statique qui existe pour toutes les instances de la classe.A class handler is like a static handler that exists for all instances of the class. Étant donné que le gestionnaire est statique, vous ne pouvez pas modifier les propriétés d’instance directement avec un gestionnaire de classe, mais vous pouvez accéder aux instances via le sender paramètre et/ou les données d’événement.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.

Gestionnaires de classe sont appelés avant les gestionnaires d’instance.Class handlers are invoked before instance handlers. Vous pouvez implémenter un gestionnaire de classe qui a le comportement de marquer l’événement comme géré.You can implement a class handler that has the behavior of marking the event as handled. Par conséquent, les gestionnaires d’instance pour un événement géré à la classe ne sont pas appelés à moins que les gestionnaires d’instance inscrire spécifiquement pour les événements gérés.Therefore, instance handlers for a class-handled event are not invoked unless the instance handlers register specifically for handled events.

Un grand nombre de la WPFWPF les événements d’élément de base fournissent des méthodes virtuelles de gestion de classe.Many of the WPFWPF base element events provide class handling virtual methods. En substituant ces méthodes dans les classes qui héritent des classes de base, vous pouvez implémenter la gestion de classe sans appeler RegisterClassHandler dans les constructeurs statiques.By overriding these methods in classes that inherit the base classes, you can implement class handling without calling RegisterClassHandler in static constructors. En règle générale, ces méthodes de gestion de classe existent pour les événements d’entrée et ont des noms qui commencent par « On » et se terminent par le nom de l’événement de classe.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.

Pour plus d’informations sur la gestion de classe, consultez marquage des événements routés comme gérés et gestion de classe.For more information about class handling, see Marking Routed Events as Handled, and Class Handling.

À l’aide de cette signature, les gestionnaires de classe peuvent être enregistrés pour appeler des événements gérés, en définissant handledEventsToo défini sur true.Using this signature, class handlers can be registered to invoke upon handled events, by setting handledEventsToo set to true. En règle générale, vous devez le faire uniquement s’il existe un problème de gestion connu que vous voulez contourner, tels que système d’entrée gestion à partir d’événements de souris ou le clavier.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.

S’applique à