EventManager.RegisterClassHandler Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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.