EventManager.RegisterClassHandler Méthode

Définition

Enregistre un gestionnaire de classe pour un événement routé particulier.

Surcharges

RegisterClassHandler(Type, RoutedEvent, Delegate)

Enregistre un gestionnaire de classe pour un événement routé particulier.

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.

RegisterClassHandler(Type, RoutedEvent, Delegate)

Enregistre un gestionnaire de classe pour un événement routé particulier.

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)

Paramètres

classType
Type

Type de la classe qui déclare la gestion de classe.

routedEvent
RoutedEvent

Identificateur d'événement routé de l'événement à gérer.

handler
Delegate

Référence à l'implémentation du gestionnaire de classe.

Exemples

L’exemple suivant ajoute un gestionnaire pour PreviewMouseRightButtonDownEvent, appelant 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

La gestion des classes est une fonctionnalité disponible pour les événements routés, y compris les événements joints qui sont implémentés avec un stockage d’événements routés. Un gestionnaire de classes est comme un gestionnaire statique qui existe pour toutes les instances de la classe. Étant donné que le gestionnaire est statique, vous ne pouvez pas modifier instance propriétés directement avec un gestionnaire de classes, mais vous pouvez accéder aux instances via le sender paramètre et/ou les données d’événement.

Les gestionnaires de classes sont appelés avant instance gestionnaires. Vous pouvez implémenter un gestionnaire de classes qui a le comportement de marquer l’événement comme géré. Par conséquent, les gestionnaires de instance pour un événement géré par la classe ne sont pas appelés, sauf si les gestionnaires de instance s’inscrivent spécifiquement pour les événements gérés.

La plupart des événements d’élément de base WPF fournissent des méthodes virtuelles de gestion de classe. En remplaçant ces méthodes dans des classes qui héritent des classes de base, vous pouvez implémenter la gestion des classes sans appeler RegisterClassHandler des constructeurs statiques. Ces méthodes de gestion de classe existent généralement 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 géré par la classe.

Pour plus d’informations sur la gestion des classes, consultez Marquage des événements routés en tant que handled et Gestion des classes.

À l’aide de cette signature, les gestionnaires de classes sont inscrits pour appeler uniquement en réponse à des événements non pris en charge. Vous pouvez également inscrire des gestionnaires de classes à appeler même si les arguments d’événement sont marqués gérés, à l’aide de la RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) signature, avec handledEventsToo la valeur définie sur true.

S’applique à

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.

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)

Paramètres

classType
Type

Type de la classe qui déclare la gestion de classe.

routedEvent
RoutedEvent

Identificateur d'événement routé de l'événement à gérer.

handler
Delegate

Référence à l'implémentation du gestionnaire de classe.

handledEventsToo
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é.

Remarques

La gestion des classes est une fonctionnalité disponible pour les événements routés, y compris les événements joints qui sont implémentés avec un stockage d’événements routés. Un gestionnaire de classes est comme un gestionnaire statique qui existe pour toutes les instances de la classe. Étant donné que le gestionnaire est statique, vous ne pouvez pas modifier instance propriétés directement avec un gestionnaire de classes, mais vous pouvez accéder aux instances via le sender paramètre et/ou les données d’événement.

Les gestionnaires de classes sont appelés avant instance gestionnaires. Vous pouvez implémenter un gestionnaire de classes qui a le comportement de marquer l’événement comme géré. Par conséquent, les gestionnaires de instance pour un événement géré par la classe ne sont pas appelés, sauf si les gestionnaires de instance s’inscrivent spécifiquement pour les événements gérés.

La plupart des événements d’élément de base WPF fournissent des méthodes virtuelles de gestion de classe. En remplaçant ces méthodes dans des classes qui héritent des classes de base, vous pouvez implémenter la gestion des classes sans appeler RegisterClassHandler des constructeurs statiques. Ces méthodes de gestion de classe existent généralement 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 géré par la classe.

Pour plus d’informations sur la gestion des classes, consultez Marquage des événements routés en tant que handled et Gestion des classes.

À l’aide de cette signature, les gestionnaires de classes peuvent être inscrits pour être appelés sur des événements gérés, en définissant handledEventsTootruesur . En règle générale, vous devez effectuer cette opération uniquement s’il existe un problème de gestion connu que vous essayez de contourner, tel que la gestion du système d’entrée à partir d’événements de souris ou de clavier.

S’applique à