EventManager.RegisterClassHandler EventManager.RegisterClassHandler EventManager.RegisterClassHandler Method

定義

特定のルーティング イベントのクラス ハンドラーを登録します。Registers a class handler for a particular routed event.

オーバーロード

RegisterClassHandler(Type, RoutedEvent, Delegate) RegisterClassHandler(Type, RoutedEvent, Delegate) RegisterClassHandler(Type, RoutedEvent, Delegate)

特定のルーティング イベントのクラス ハンドラーを登録します。Registers a class handler for a particular routed event.

RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean)

イベント データが既に処理済みとしてマークされているイベントを処理するオプションを使用して、特定のルーティング イベントのクラス ハンドラーを登録します。Registers a class handler for a particular routed event, with the option to handle events where event data is already marked handled.

RegisterClassHandler(Type, RoutedEvent, Delegate) RegisterClassHandler(Type, RoutedEvent, Delegate) RegisterClassHandler(Type, RoutedEvent, Delegate)

特定のルーティング イベントのクラス ハンドラーを登録します。Registers a class handler for a particular routed event.

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

パラメーター

classType
Type Type Type

クラスの処理を宣言するクラスの型。The type of the class that is declaring class handling.

routedEvent
RoutedEvent RoutedEvent RoutedEvent

処理するイベントのルーティング イベント識別子。The routed event identifier of the event to handle.

handler
Delegate Delegate Delegate

クラス ハンドラー実装への参照。A reference to the class handler implementation.

次の例のハンドラーを追加するPreviewMouseLeftButtonDownを呼び出すと、RegisterClassHandlerします。The following example adds a handler for PreviewMouseLeftButtonDown, calling 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

注釈

クラス処理は、ルーティング イベントのサポートで実装されている添付イベントを含む、ルーティング イベントで利用可能な機能です。Class handling is a feature that is available for routed events, including attached events that are implemented with routed event backing. クラス ハンドラーは、クラスのすべてのインスタンスが存在する静的なハンドラーに似ています。A class handler is like a static handler that exists for all instances of the class. ハンドラーが静的では、クラス ハンドラーを直接インスタンス プロパティを変更することはできませんが、を通じてインスタンスにアクセスすることができますので、senderパラメーターやイベント データ。Because the handler is static, you cannot change instance properties directly with a class handler, but you can access instances through the sender parameter and/or the event data.

インスタンス ハンドラーの前に、クラス ハンドラーが呼び出されます。Class handlers are invoked before instance handlers. クラス ハンドラーを持つイベントを処理済みとしてマークの動作を実装することができます。You can implement a class handler that has the behavior of marking the event as handled. そのため、専用のイベント処理のインスタンス ハンドラーを登録しない限り、クラスで処理されるイベントのインスタンス ハンドラーは呼び出されません。Therefore, instance handlers for a class-handled event are not invoked unless the instance handlers register specifically for handled events.

多くは、WPFWPF基本要素のイベントが仮想メソッドを処理するクラスを提供します。Many of the WPFWPF base element events provide class handling virtual methods. クラスを呼び出さずに処理を実装する基本クラスを継承するクラスでこれらのメソッドをオーバーライドしてRegisterClassHandlerで静的コンス トラクター。By overriding these methods in classes that inherit the base classes, you can implement class handling without calling RegisterClassHandler in static constructors. 通常、これらのクラス処理メソッドは、入力イベントの存在し、名前が"On"を先頭し、末尾クラス処理されているイベントの名前。These class handling methods typically exist for input events and have names that start with "On" and end with the name of the event being class handled.

クラス処理の詳細については、次を参照してください。ルーティング イベントの処理済み、およびクラス処理としてのマーキングします。For more information about class handling, see Marking Routed Events as Handled, and Class Handling.

この署名を使用して、未処理のイベントへの応答でのみ呼び出すクラス ハンドラーが登録されます。Using this signature, class handlers will be registered to invoke only in response to unhandled events. 呼び出す場合でも、イベント引数を使用して、処理、マークされたクラスのハンドラーを登録することも、RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean)のシグネチャでhandledEventsTooに設定trueします。You can also register class handlers to invoke even if the event arguments are marked handled, by using the RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) signature, with handledEventsToo set to true.

RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean)

イベント データが既に処理済みとしてマークされているイベントを処理するオプションを使用して、特定のルーティング イベントのクラス ハンドラーを登録します。Registers a class handler for a particular routed event, with the option to handle events where event data is already marked handled.

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

パラメーター

classType
Type Type Type

クラスの処理を宣言するクラスの型。The type of the class that is declaring class handling.

routedEvent
RoutedEvent RoutedEvent RoutedEvent

処理するイベントのルーティング イベント識別子。The routed event identifier of the event to handle.

handler
Delegate Delegate Delegate

クラス ハンドラー実装への参照。A reference to the class handler implementation.

handledEventsToo
Boolean Boolean Boolean

ルーティング イベントの引数が既に処理済みとしてマークされていても、このクラス ハンドラーを呼び出す場合は true。処理済みとしてマークされているイベントのハンドラーを呼び出さない、既定の動作を維持する場合は falsetrue to invoke this class handler even if arguments of the routed event have been marked as handled; false to retain the default behavior of not invoking the handler on any marked-handled event.

注釈

クラス処理は、ルーティング イベントのサポートで実装されている添付イベントを含む、ルーティング イベントで利用可能な機能です。Class handling is a feature that is available for routed events, including attached events that are implemented with routed event backing. クラス ハンドラーは、クラスのすべてのインスタンスが存在する静的なハンドラーに似ています。A class handler is like a static handler that exists for all instances of the class. ハンドラーが静的では、クラス ハンドラーを直接インスタンス プロパティを変更することはできませんが、を通じてインスタンスにアクセスすることができますので、senderパラメーターやイベント データ。Because the handler is static, you cannot change instance properties directly with a class handler, but you can access instances through the sender parameter and/or the event data.

インスタンス ハンドラーの前に、クラス ハンドラーが呼び出されます。Class handlers are invoked before instance handlers. クラス ハンドラーを持つイベントを処理済みとしてマークの動作を実装することができます。You can implement a class handler that has the behavior of marking the event as handled. そのため、専用のイベント処理のインスタンス ハンドラーを登録しない限り、クラスで処理されるイベントのインスタンス ハンドラーは呼び出されません。Therefore, instance handlers for a class-handled event are not invoked unless the instance handlers register specifically for handled events.

多くは、WPFWPF基本要素のイベントが仮想メソッドを処理するクラスを提供します。Many of the WPFWPF base element events provide class handling virtual methods. クラスを呼び出さずに処理を実装する基本クラスを継承するクラスでこれらのメソッドをオーバーライドしてRegisterClassHandlerで静的コンス トラクター。By overriding these methods in classes that inherit the base classes, you can implement class handling without calling RegisterClassHandler in static constructors. 通常、これらのクラス処理メソッドは、入力イベントの存在し、名前が"On"を先頭し、末尾クラス処理されているイベントの名前。These class handling methods typically exist for input events and have names that start with "On" and end with the name of the event being class handled.

クラス処理の詳細については、次を参照してください。ルーティング イベントの処理済み、およびクラス処理としてのマーキングします。For more information about class handling, see Marking Routed Events as Handled, and Class Handling.

この署名を使用して、クラス ハンドラーに登録できるイベントの処理時に設定して、呼び出すhandledEventsToo設定trueします。Using this signature, class handlers can be registered to invoke upon handled events, by setting handledEventsToo set to true. 一般に、行う必要がありますこれマウスまたはキーボード イベントからを処理する入力システムなど、回避しようとして既知の処理に関する問題がある場合にのみです。Generally, you should do this only if there is a known handling issue you are trying to work around, such as input system handling from mouse or keyboard events.

適用対象