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. アタッチされたイベントには、コードで直接処理構文がありません。コードでルーティングイベントのハンドラーをアタッチするには、指定された Add * Handler メソッドを使用します。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) ContentElement UIElement MouseLeftButtonDown異なるイベントとして提示することで、このアタッチされるイベントに基づいて構築されます。MouseRightButtonDownThe 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 、ハンドラーがルーティングイベントデータで既に処理済みとしてマークされている場合でもイベントをリッスンできるようにする署名オプションを選択して、コントロール procedurally にハンドラーを登録します。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

適用対象