EventManager.RegisterClassHandler Metódus

Definíció

Osztálykezelőt regisztrál egy adott irányított eseményhez.

Túlterhelések

Name Description
RegisterClassHandler(Type, RoutedEvent, Delegate)

Osztálykezelőt regisztrál egy adott irányított eseményhez.

RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean)

Regisztrál egy osztálykezelőt egy adott irányított eseményhez, és kezelheti azokat az eseményeket, ahol az eseményadatok már vannak kezelve.

RegisterClassHandler(Type, RoutedEvent, Delegate)

Osztálykezelőt regisztrál egy adott irányított eseményhez.

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éterek

classType
Type

Az osztálykezelést deklaráló osztály típusa.

routedEvent
RoutedEvent

A kezelendő esemény átirányított eseményazonosítója.

handler
Delegate

Hivatkozás az osztálykezelő implementálására.

Példák

Az alábbi példa egy kezelőt ad hozzá a híváshozPreviewMouseRightButtonDownEventRegisterClassHandler.

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

Megjegyzések

Az osztálykezelés egy olyan funkció, amely az irányított eseményekhez érhető el, beleértve az irányított eseményhátralással implementált csatolt eseményeket is. Az osztálykezelő olyan, mint egy statikus kezelő, amely az osztály összes példányához létezik. Mivel a kezelő statikus, a példánytulajdonságokat közvetlenül az osztálykezelővel nem módosíthatja, de a példányokat a sender paraméteren és/vagy az eseményadatokon keresztül érheti el.

Az osztálykezelőket a rendszer a példánykezelők előtt hívja meg. Olyan osztálykezelőt implementálhat, amelynek viselkedése az esemény kezeléseként való megjelölésére szolgál. Ezért az osztály által kezelt események példánykezelői csak akkor hívhatók meg, ha a példánykezelők kifejezetten a kezelt eseményekre regisztrálnak.

Az WPF alapelemesemények közül számos osztálykezelő virtuális metódust biztosít. Ha felülírja ezeket a metódusokat az alaposztályokat öröklő osztályokban, statikus konstruktorok meghívása RegisterClassHandler nélkül implementálhatja az osztálykezelést. Ezek az osztálykezelési módszerek általában a bemeneti eseményekhez léteznek, és olyan neveik vannak, amelyek "Be" kezdetűek, és az osztály által kezelt esemény nevével végződnek.

Az osztálykezeléssel kapcsolatos további információkért lásd: Az irányított események megjelölése kezeltként és osztálykezelés.

Ezzel az aláírással az osztálykezelők regisztrálva lesznek, hogy csak a nem kezelt eseményekre válaszolva hívjanak meg. Az osztálykezelőket akkor is regisztrálhatja a meghíváshoz, ha az eseményargumentumok kezelése az aláírással RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) történik, handledEventsToo és a beállítás értéke a következő true.

A következőre érvényes:

RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean)

Regisztrál egy osztálykezelőt egy adott irányított eseményhez, és kezelheti azokat az eseményeket, ahol az eseményadatok már vannak kezelve.

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éterek

classType
Type

Az osztálykezelést deklaráló osztály típusa.

routedEvent
RoutedEvent

A kezelendő esemény átirányított eseményazonosítója.

handler
Delegate

Hivatkozás az osztálykezelő implementálására.

handledEventsToo
Boolean

true az osztálykezelő meghívása akkor is, ha az irányított esemény argumentumait kezeltként jelölték meg; false a kezelő nem meghívásának alapértelmezett viselkedésének megőrzése egy megjelölten kezelt eseményen.

Megjegyzések

Az osztálykezelés egy olyan funkció, amely az irányított eseményekhez érhető el, beleértve az irányított eseményhátralással implementált csatolt eseményeket is. Az osztálykezelő olyan, mint egy statikus kezelő, amely az osztály összes példányához létezik. Mivel a kezelő statikus, a példánytulajdonságokat közvetlenül az osztálykezelővel nem módosíthatja, de a példányokat a sender paraméteren és/vagy az eseményadatokon keresztül érheti el.

Az osztálykezelőket a rendszer a példánykezelők előtt hívja meg. Olyan osztálykezelőt implementálhat, amelynek viselkedése az esemény kezeléseként való megjelölésére szolgál. Ezért az osztály által kezelt események példánykezelői csak akkor hívhatók meg, ha a példánykezelők kifejezetten a kezelt eseményekre regisztrálnak.

Az WPF alapelemesemények közül számos osztálykezelő virtuális metódust biztosít. Ha felülírja ezeket a metódusokat az alaposztályokat öröklő osztályokban, statikus konstruktorok meghívása RegisterClassHandler nélkül implementálhatja az osztálykezelést. Ezek az osztálykezelési módszerek általában a bemeneti eseményekhez léteznek, és olyan neveik vannak, amelyek "Be" kezdetűek, és az osztály által kezelt esemény nevével végződnek.

Az osztálykezeléssel kapcsolatos további információkért lásd: Az irányított események megjelölése kezeltként és osztálykezelés.

Ezzel az aláírással az osztálykezelők regisztrálhatók a kezelt események meghívásához a következő beállítással handledEventsTootrue: . Ezt általában csak akkor érdemes megtennie, ha ismert kezelési problémát próbál megkerülni, például a beviteli rendszer kezelését az egérrel vagy a billentyűzeteseményekkel.

A következőre érvényes: