Mouse.MouseDown Mouse.MouseDown Mouse.MouseDown Attached Event

定義

任意のマウス ボタンが押されると発生します。Occurs when any mouse button is depressed.

see AddMouseDownHandler, and RemoveMouseDownHandler
see AddMouseDownHandler, and RemoveMouseDownHandler
see AddMouseDownHandler, and RemoveMouseDownHandler

注釈

どちらのマウス ボタンが押された状態を確認するに、ChangedButtonプロパティ、MouseButtonEventArgsハンドラーに渡されます。To determine which mouse button was depressed, check the ChangedButton property in the MouseButtonEventArgs passed to the handler.

これは、添付イベントです。This is an attached event. WPFWPF ルーティング イベントとして添付イベントを実装します。implements attached events as routed events. 添付イベントは、基本的に、 XAMLXAML 、そのイベントを定義しないオブジェクトで処理できるイベントを参照するための言語の概念をWPFWPFにより、ルートを走査するイベントを拡張します。Attached events are fundamentally a XAMLXAML language concept for referencing events that can be handled on objects that do not define that event, which WPFWPF expands upon by also enabling the event to traverse a route. アタッチされるイベントでは、コードでは、直接処理構文はありません。指定された追加に使用するコードでルーティング イベントのハンドラーをアタッチする * ハンドラー メソッド。Attached events do not have a direct handling syntax in code; to attach handlers for a routed event in code, you use a designated Add*Handler method. 詳細については、次を参照してください。添付イベントの概要します。For details, see Attached Events Overview.

Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF)フレームワークがこの添付イベントの 2 つの異なるとして表示することによって構築共通言語ランタイム (CLR)common language runtime (CLR)上のイベントUIElementContentElement:MouseLeftButtonDownMouseRightButtonDownします。The Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) framework builds on this attached event by surfacing it as two different 共通言語ランタイム (CLR)common language runtime (CLR) events on UIElement and ContentElement: MouseLeftButtonDown and MouseRightButtonDown. これらの実装の処理、基になるMouseDownイベント、左または右マウス ボタンが含まれていたかどうかを判断するイベントの引数を確認します。These implementations handle the underlying MouseDown event and read the arguments of the event to determine whether the left or right mouse button was involved. 3 つのボタン マウスの場合は、中央ボタンのフレームワーク レベルのイベントのサポートされていません。For a three-button mouse, there is no framework-level event support for the center button. 使用する必要があります、MouseDownイベントとチェック、MiddleButton状態イベントの引数。You should use the MouseDown event and check the MiddleButton state in the event arguments.

重要

いくつかContentElementをたとえば、コントロールと同様の動作を持つクラスを派生Hyperlink、固有のクラスのマウス ボタンのイベント処理を必要があります。A few ContentElement derived classes that have control-like behavior, for example, Hyperlink, might have inherent class handling for mouse button events. 左マウス ボタンを押すイベントは、クラス、コントロールの処理が最も可能性の高いイベントです。The left mouse button down event is the most likely event to have class handling in a control. 多くの場合、処理するクラスは、基になるをマークMouseクラス イベントを処理します。The class handling often marks the underlying Mouse class event as handled. イベントが処理済みマークされると、その要素にアタッチされている他のインスタンス ハンドラーは通常は発生しません。Once the event is marked handled, other instance handlers that are attached to that element are not ordinarily raised. その他のクラスまたはインスタンス ハンドラー UI ツリーのルートに向かうバブルの方向に要素にアタッチされているが通常も発生します。Any other class or instance handlers that are attached to elements in the bubbling direction towards the root in the UI tree are also not ordinarily raised.

上記の重要なメモに記載されている問題を解決でき、それでもMouseDownをこれらのソリューションのいずれかを使用して処理するクラスを持つ派生クラスでイベントをマウスの左ボタンのイベント。You can resolve the issue that is outlined in the preceding Important note and still receive MouseDown events for left mouse button down events on a derived class that has class handling by using either of these solutions:

  • ハンドラーのアタッチ、PreviewMouseDownイベントで、コントロールによって処理済みとしてマークされていません。Attach handlers for the PreviewMouseDown event, which is not marked as handled by the controls. これは、プレビュー イベントであるため、ルートがルートをトンネリングをコントロールに注意してください。Notice that because this is a preview event, the route starts at the root and tunnels down to the control.

  • コントロールのハンドラーを呼び出すことによって手続き登録AddHandlerとルーティング イベントのデータの処理としてマークされている場合でも、イベントをリッスンするハンドラーの有効な署名オプションを選択します。Register a handler on the control procedurally by calling AddHandler and choosing the signature option that enables handlers to listen for events even if they are already marked as handled in the routed event data.

マウスに関連するルーティング イベントを処理済みとしてマークする方法やタイミングについて注意します。For routed events that relate to the mouse, be careful about how or when you mark them handled. かどうか親要素も通知も、指定したマウス操作は実際には理由について適切な選択を行うことが難しい、WPFWPFフレームワークとして表示される、基になるルーティング マウス イベントのモデルを選択するCLRCLR経路上のイベントです。The difficulty in making the appropriate choices about whether parent elements should also be informed about any given mouse action is in fact why the WPFWPF framework chose the model of having the underlying mouse routed event be surfaced as CLRCLR events along the route. マウス イベントのトンネリングを使用した同様の問題が存在します。Similar issues exist with tunneling mouse events. 必要があるイベントを処理し、ない場合、ソースにそれ以上の子によって、方法はその影響の複合コントロールの複合要素を想定している可能性がありますマウス動作でしょうか。Should you handle the event and not have it be handled by further children toward the source, and how would that affect compositing a control where the compositing pieces might have expected mouse behaviors?

ルーティングされたイベント情報Routed Event Information

識別子フィールドです。Identifier field MouseDownEvent
ルーティング方法Routing strategy バブルBubbling
DelegateDelegate MouseButtonEventHandler

適用対象