UIElement.MouseLeftButtonDown イベント


この要素の上にマウス ポインターがある状態でマウスの左ボタンが押されたときに発生します。Occurs when the left mouse button is pressed while the mouse pointer is over this element.

 virtual event System::Windows::Input::MouseButtonEventHandler ^ MouseLeftButtonDown;
public event System.Windows.Input.MouseButtonEventHandler MouseLeftButtonDown;
member this.MouseLeftButtonDown : System.Windows.Input.MouseButtonEventHandler 
Public Custom Event MouseLeftButtonDown As MouseButtonEventHandler 





この ルーティングイベント は、要素ツリーを通じてバブルルートに従っているように見えますが、実際には、各によって要素ツリーに沿って発生する直接ルーティングイベントです UIElementAlthough this routed event seems to follow a bubbling route through an element tree, it actually is a direct routed event that is raised and reraised along the element tree by each UIElement.

このイベントは、 Mouse.MouseDown イベントルートに沿って各要素によって処理される添付イベントである、基になるイベントのマウスボタンの詳細を報告する、関連するいくつかのイベントの1つです。This event is one of several related events that report the mouse-button specifics of an underlying Mouse.MouseDown event, which is an attached event that is processed by each element along an event route.

このイベントのイベントデータは、基になるイベントのイベントデータを公開し Mouse.MouseDown ます。The event data of this event exposes the event data of the underlying Mouse.MouseDown event. イベントルートに従ってイベントが処理済みとしてマークされている場合は、マウスボタンの特定のイベントが引き続き発生します。ただし、マウスボタンの特定のイベントのハンドラーは AddHandler 、イベントのリスナーとして既に処理済みとしてマークされているイベントを処理するオプションを指定して、明示的にを呼び出すことによって追加する必要があります。If that event is marked as handled along the event route, the mouse-button specific events are still raised; however, handlers of the mouse-button specific events must be added by explicitly calling AddHandler, with the option to handle events that are already marked as handled, in order to be listeners to the event. 処理済みとしてマークした場合、 MouseLeftButtonDown 基本的には、ルートに沿った Mouse.MouseDown すべてのリスナーと、関連するすべてのイベントに対して、処理がマークされます。If you mark MouseLeftButtonDown handled, you are essentially marking Mouse.MouseDown handled for all further listeners along the route, and on all related events. これには、などのクラスハンドラーで生成されたイベントが含まれることが MouseDoubleClick あります。This possibly includes class-handler generated events such as MouseDoubleClick.

概念的には、このイベント (およびその他のマウスボタンイベント UIElement ) は、(クラスによって提供されるサービス定義を使用した) マウス "サービス" と考えることができ Mouse ます。Conceptually, think of this event (and other mouse-button events on UIElement) to be a mouse "service" (with the service definition provided by the Mouse class). イベントは、イベントデータ内の元のマウスイベントのマウスボタンの状態 (左右、上から下) をチェックしなくて済むようにします。The event adds the convenience of not needing to check the mouse button states (left-right, up-down) of the original mouse events in the event data. 標準以外のボタンの状態を確認するなど、より高度なシナリオでは、の Api をではなくクラスで使用する必要がある場合があり Mouse UIElement ます。For more advanced scenarios, such as checking for states of non-standard buttons, you might need to use the APIs on the Mouse class rather than those on UIElement.


一部のコントロールクラスには、マウスボタンイベントに固有のクラス処理が含まれる場合があります。Some control classes 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.

前の「」で説明されている問題を解決しても、 MouseLeftButtonDown 次のいずれかの方法を使用してクラス処理を持つ派生クラスで、マウスの左ボタンダウンイベントのイベントを受け取ることができます。You can resolve the issue that is outlined in the preceding Important and still receive MouseLeftButtonDown 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.

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

識別子フィールドIdentifier field MouseLeftButtonDownEvent
ルーティング方法Routing strategy 直接Direct
代理人Delegate MouseButtonEventHandler
  • をオーバーライドし OnMouseLeftButtonDown て、派生クラスでこのイベントのクラス処理を実装します。Override OnMouseLeftButtonDown to implement class handling for this event in derived classes.