UIElement.OnPreviewMouseDown(MouseButtonEventArgs) UIElement.OnPreviewMouseDown(MouseButtonEventArgs) UIElement.OnPreviewMouseDown(MouseButtonEventArgs) UIElement.OnPreviewMouseDown(MouseButtonEventArgs) Method


未処理の PreviewMouseDown 添付ルーティング イベントが、そのルート上で、このクラスから派生した要素に到達すると呼び出されます。Invoked when an unhandled PreviewMouseDown attached routed event reaches an element in its route that is derived from this class. このイベントに対するクラス処理を追加するには、このメソッドを実装します。Implement this method to add class handling for this event.

 virtual void OnPreviewMouseDown(System::Windows::Input::MouseButtonEventArgs ^ e);
protected virtual void OnPreviewMouseDown (System.Windows.Input.MouseButtonEventArgs e);
abstract member OnPreviewMouseDown : System.Windows.Input.MouseButtonEventArgs -> unit
override this.OnPreviewMouseDown : System.Windows.Input.MouseButtonEventArgs -> unit
Protected Overridable Sub OnPreviewMouseDown (e As MouseButtonEventArgs)


MouseButtonEventArgs MouseButtonEventArgs MouseButtonEventArgs MouseButtonEventArgs

イベント データを格納している MouseButtonEventArgsThe MouseButtonEventArgs that contains the event data. このイベント データは、1 つ以上のマウス ボタンが押されたことを報告します。The event data reports that one or more mouse buttons were pressed.


マウス ボタンの動作は、専用の入力マネージャーによって処理もされます。Mouse button actions are also handled by a dedicated input manager. 一般的なマウス ボタンの操作として公開される前に、入力などのマウス ボタンの動作に依存しており、コマンドのバインド、その他のプログラミング機能は、アクションのハンドラーを呼び出す可能性があります。Other programming features that rely on mouse button actions, such as input and command bindings, might invoke handlers for the action before it is exposed as a general mouse button action. これらの入力システム機能のマークがある場合、Mouse.PreviewMouseDownイベントを処理するには、OnPreviewMouseDownは呼び出されません。If these input system features mark the Mouse.PreviewMouseDown event as handled, OnPreviewMouseDown is not invoked.

このクラス ハンドラーを使用して、イベントを処理済みとしてマークする場合、次のイベントに影響する可能性があります:PreviewMouseLeftButtonDownPreviewMouseRightButtonDownします。If you use this class handler to mark the event as handled, you potentially impact the following events: PreviewMouseLeftButtonDown and PreviewMouseRightButtonDown. これらのイベントのいずれかは、受信側の要素で発生する可能性がありますとMouse.PreviewMouseDownを受信します。Either of these events may be raised on the receiving element when Mouse.PreviewMouseDown is received.

このイベントを処理するクラスで処理済みとしてマークする、サブイベントがも発生します。ただし、これらはイベント データの処理済みの状態を渡します。If you mark this event as handled in class handling, subevents are still raised; however, they pass the handled state in the event data. 明示的に使用する場合を除き、サブイベントのインスタンス ハンドラーが呼び出されませんクラス処理でイベントを処理すると場合、AddHandler(RoutedEvent, Delegate, Boolean)handledEventsToo``trueハンドラーをアタッチするためにします。If the event is handled in class handling, instance handlers for the subevents are not invoked unless you explicitly use AddHandler(RoutedEvent, Delegate, Boolean) with handledEventsToo true in order to attach handlers. クラス ハンドラーも呼び出されませんにこれらのクラス ハンドラーが登録されていない限り、RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean)を使用して署名handledEventsToo``trueします。Class handlers also are not invoked unless those class handlers were registered with the RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) signature with handledEventsToo true. 処理することによってOnPreviewMouseDown処理の速度のすべての可能なマウス ボタンをクラス処理を記述することを示すは。By handling OnPreviewMouseDown, you are implying that your class handling accounted for all possible mouse button down actions. この動作が望ましくない可能性があります。そのため、この仮想メソッドを使用してイベントを処理済みとしてマークする場合は、注意を使用します。This behavior might be unwanted; Therefore, use caution when you use this virtual method to mark events as handled.

各ボタンに固有の直接イベントもに、仮想 * メソッドかどうか、これらのボタンに固有のクラス ハンドラーをオーバーライドするとより適切な可能性がありますを検討してください。Each of the button-specific direct events also has a virtual On* method; consider whether overriding these button-specific class handlers might be more appropriate.

このメソッドには、既定の実装がありません。This method has no default implementation. 継承の中間クラスには、このメソッドを実装があります、ために、実装の基本実装を呼び出すことをお勧めします。Because an intermediate class in the inheritance might implement this method, we recommend that you call the base implementation in your implementation.

このメソッドの目的は、のような共通言語ランタイム (CLR)common language runtime (CLR)イベント パターンで * メソッド: このメソッドは、インスタンス ハンドラーではなく、クラス ハンドラーを確立することにより、派生クラスから一致するイベントを処理する手段を提供します。The purpose of this method is similar to the 共通言語ランタイム (CLR)common language runtime (CLR) event pattern On* methods: this method provides the means to handle the matching event from derived classes by establishing a class handler instead of an instance handler. ここで一致するイベントは、ルーティング イベントです。In this case the matching event is a routed event. On のメソッドの実装パターンは、ルーティング イベント ハンドラーを呼び出すの要素とは限りませんが、子要素によって発生するためのルーティング イベントに異なります。The implementation pattern of the On* methods is different for routed events because a routed event can be raised by a child element, which is not necessarily the element that will invoke handlers. そのため、実装では、イベント データのソースのプロパティを確認する必要があります。Therefore, your implementation needs to examine the source properties of the event data. ほとんどの場合、イベントが再発生する必要がありますください。It should not try to reraise the event in most cases.

このメソッドをオーバーライドすることで、または登録することでクラスのハンドラーをRegisterClassHandler、派生クラスのUIElementイベント ルート上のイベントが受信したときに、プライベート クラス ハンドラー メソッドを呼び出すことができます。Either by overriding this method or by registering class handlers with RegisterClassHandler, derived classes of UIElement can call private class handler methods when the event is received along the event route. クラス処理が適切なシナリオの 1 つは、イベント データを操作し、ルーティング イベントを処理済みとしてマークすることです。One scenario where class handling is appropriate is to manipulate the event data and mark the routed event as handled. プレビュー イベントを具体的には、もう 1 つのシナリオでは、対応するバブル クラス ハンドラーが呼び出されないように処理済みとしてマークします。Another scenario that is specifically for Preview events is to mark them handled so that the matching bubbling class handlers are not invoked.