EventManager.RegisterClassHandler Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Zaregistruje obslužnou rutinu třídy pro konkrétní směrovanou událost.
Přetížení
| Name | Description |
|---|---|
| RegisterClassHandler(Type, RoutedEvent, Delegate) |
Zaregistruje obslužnou rutinu třídy pro konkrétní směrovanou událost. |
| RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) |
Zaregistruje obslužnou rutinu třídy pro konkrétní směrovanou událost s možností zpracování událostí, kde jsou data událostí již označena. |
RegisterClassHandler(Type, RoutedEvent, Delegate)
Zaregistruje obslužnou rutinu třídy pro konkrétní směrovanou událost.
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)
Parametry
- classType
- Type
Typ třídy, která deklaruje zpracování tříd.
- routedEvent
- RoutedEvent
Směrovaný identifikátor události, která se má zpracovat.
- handler
- Delegate
Odkaz na implementaci obslužné rutiny třídy.
Příklady
Následující příklad přidá obslužnou rutinu pro PreviewMouseRightButtonDownEvent, volání 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
Poznámky
Zpracování tříd je funkce, která je k dispozici pro směrované události, včetně připojených událostí implementovaných se směrováním událostí. Obslužná rutina třídy je jako statická obslužná rutina, která existuje pro všechny instance třídy. Protože je obslužná rutina statická, nelze změnit vlastnosti instance přímo pomocí obslužné rutiny třídy, ale k instancím můžete přistupovat prostřednictvím parametru sender nebo dat událostí.
Obslužné rutiny třídy jsou vyvolány před obslužné rutiny instance. Můžete implementovat obslužnou rutinu třídy, která má chování označení události jako zpracovávané. Proto obslužné rutiny instance pro událost obslužnou třídu nejsou vyvolány, pokud obslužné rutiny instance registrují speciálně pro zpracovávané události.
Mnoho událostí základního elementu WPF (Windows Presentation Foundation) poskytuje třídy zpracovávající virtuální metody. Přepsáním těchto metod ve třídách, které dědí základní třídy, můžete implementovat zpracování tříd bez volání RegisterClassHandler statických konstruktorů. Tyto metody zpracování tříd obvykle existují pro vstupní události a mají názvy, které začínají na "Zapnuto" a končí názvem události, která se zpracovává.
Další informace o zpracování tříd naleznete v tématu Označení směrovaných událostí jako zpracovávaných a zpracování tříd.
Pomocí tohoto podpisu budou obslužné rutiny tříd registrovány k vyvolání pouze v reakci na neošetřené události. Můžete také zaregistrovat obslužné rutiny třídy k vyvolání, i když jsou argumenty události označeny, pomocí RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) podpisu, s handledEventsToo nastaveným na true.
Platí pro
RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean)
Zaregistruje obslužnou rutinu třídy pro konkrétní směrovanou událost s možností zpracování událostí, kde jsou data událostí již označena.
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)
Parametry
- classType
- Type
Typ třídy, která deklaruje zpracování tříd.
- routedEvent
- RoutedEvent
Směrovaný identifikátor události, která se má zpracovat.
- handler
- Delegate
Odkaz na implementaci obslužné rutiny třídy.
- handledEventsToo
- Boolean
true vyvolat tuto obslužnou rutinu třídy i v případě, že argumenty směrované události byly označeny jako zpracovány; false chcete-li zachovat výchozí chování nevyvolání obslužné rutiny u jakékoli označené obslužné události.
Poznámky
Zpracování tříd je funkce, která je k dispozici pro směrované události, včetně připojených událostí implementovaných se směrováním událostí. Obslužná rutina třídy je jako statická obslužná rutina, která existuje pro všechny instance třídy. Protože je obslužná rutina statická, nelze změnit vlastnosti instance přímo pomocí obslužné rutiny třídy, ale k instancím můžete přistupovat prostřednictvím parametru sender nebo dat událostí.
Obslužné rutiny třídy jsou vyvolány před obslužné rutiny instance. Můžete implementovat obslužnou rutinu třídy, která má chování označení události jako zpracovávané. Proto obslužné rutiny instance pro událost obslužnou třídu nejsou vyvolány, pokud obslužné rutiny instance registrují speciálně pro zpracovávané události.
Mnoho událostí základního elementu WPF (Windows Presentation Foundation) poskytuje třídy zpracovávající virtuální metody. Přepsáním těchto metod ve třídách, které dědí základní třídy, můžete implementovat zpracování tříd bez volání RegisterClassHandler statických konstruktorů. Tyto metody zpracování tříd obvykle existují pro vstupní události a mají názvy, které začínají na "Zapnuto" a končí názvem události, která se zpracovává.
Další informace o zpracování tříd naleznete v tématu Označení směrovaných událostí jako zpracovávaných a zpracování tříd.
Pomocí tohoto podpisu lze obslužné rutiny třídy zaregistrovat k vyvolání na zpracovávané události nastavením na hodnotu handledEventsTootrue. Obecně platí, že byste to měli udělat jenom v případě, že existuje známý problém se zpracováním, který se pokoušíte obejít, například zpracování vstupního systému z myši nebo událostí klávesnice.