EventManager.RegisterClassHandler Metoda

Definice

Zaregistruje obslužnou rutinu třídy pro konkrétní směrovanou událost.

Přetížení

RegisterClassHandler(Type, RoutedEvent, Delegate)

Zaregistruje obslužnou rutinu třídy pro konkrétní směrovanou událost.

RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean)

Registruje 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 jako zpracována.

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řídy.

routedEvent
RoutedEvent

Identifikátor směrované události 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 PreviewMouseRightButtonDownEventvolá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ěrovaným zálohováním událostí. Obslužná rutina třídy je jako statická obslužná rutina, která existuje pro všechny instance třídy. Vzhledem k tomu, že obslužná rutina je statická, nelze mě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álosti.

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 zpracovávanou třídou nejsou vyvolány, pokud obslužné rutiny instance registrují speciálně pro zpracovávané události.

Mnoho událostí základních elementů WPF poskytuje třídy zpracování virtuálních metod. 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 "On" a končí názvem události zpracovávané třídy.

Další informace o zpracování tříd najdete v tématech Označení směrovaných událostí jako zpracovaný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 pro vyvolání i v případě, že jsou argumenty události označeny jako zpracovávané pomocí RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) podpisu s nastaveným handledEventsToo na true.

Platí pro

RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean)

Registruje 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 jako zpracována.

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řídy.

routedEvent
RoutedEvent

Identifikátor směrované události 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ávané; false , aby se zachovalo výchozí chování nevyvolání obslužné rutiny u žádné události označené jako zpracovaný.

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ěrovaným zálohováním událostí. Obslužná rutina třídy je jako statická obslužná rutina, která existuje pro všechny instance třídy. Vzhledem k tomu, že obslužná rutina je statická, nelze mě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álosti.

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 zpracovávanou třídou nejsou vyvolány, pokud obslužné rutiny instance registrují speciálně pro zpracovávané události.

Mnoho událostí základních elementů WPF poskytuje třídy zpracování virtuálních metod. 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 "On" a končí názvem události zpracovávané třídy.

Další informace o zpracování tříd najdete v tématech Označení směrovaných událostí jako zpracovaných a Zpracování tříd.

Pomocí tohoto podpisu je možné zaregistrovat obslužné rutiny tříd k vyvolání při zpracovávaných událostech nastavením handledEventsToo na truehodnotu . 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 vyřešit, jako je například zpracování vstupního systému z událostí myši nebo klávesnice.

Platí pro