ContentElement.OnPreviewMouseDown(MouseButtonEventArgs) メソッド

定義

未処理の PreviewMouseDown 添付ルーティング イベントが、そのルート上で、このクラスから派生した要素に到達すると呼び出されます。 このイベントに対するクラス処理を追加するには、このメソッドを実装します。

protected public:
 virtual void OnPreviewMouseDown(System::Windows::Input::MouseButtonEventArgs ^ e);
protected internal 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 Friend Overridable Sub OnPreviewMouseDown (e As MouseButtonEventArgs)

パラメーター

e
MouseButtonEventArgs

イベント データを格納している MouseButtonEventArgs。 このイベント データは、1 つ以上のマウス ボタンが押されたことを報告します。

注釈

マウス ボタンのアクションは、専用の入力マネージャーによっても処理されます。 入力やコマンド バインドなど、マウス ボタン アクションに依存するその他のプログラミング機能では、一般的なマウス ボタン アクションとして公開される前に、アクションのハンドラーを呼び出す場合があります。 これらの入力システム機能によってイベントが処理済みとしてマークされている Mouse.PreviewMouseDown 場合、 OnPreviewMouseDown は呼び出されません。

このクラス ハンドラーを使用してイベントを処理済みとしてマークすると、次のイベントに影響を与える可能性があります: PreviewMouseLeftButtonDownPreviewMouseRightButtonDown。 これらのイベントは、受信時 Mouse.PreviewMouseDown に受信側要素で発生する可能性があります。

このイベントをクラス処理で処理済みとしてマークすると、サブイベントは引き続き発生します。ただし、イベント データで処理された状態を渡します。 イベントがクラス処理で処理される場合、ハンドラーをアタッチするために を明示的に 使用AddHandler(RoutedEvent, Delegate, Boolean)handledEventsTootrueしない限り、サブイベントのインスタンス ハンドラーは呼び出されません。 クラス ハンドラーは、 を使用してシグネチャhandledEventsTootrueに登録されていない限り、RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean)呼び出されません。 を処理 OnPreviewMouseDownすることで、クラス処理がマウス ボタンダウンアクションの可能性をすべて考慮に入れたことを意味します。 この動作は望ましくない可能性があります。そのため、この仮想メソッドを使用してイベントを処理済みとしてマークする場合は注意が必要です。

ボタン固有の各ダイレクト イベントには、仮想 On* メソッドもあります。これらのボタン固有のクラス ハンドラーをオーバーライドする方が適切かどうかを検討してください。

このメソッドには、既定の実装はありません。 継承の中間クラスがこのメソッドを実装する可能性があるため、実装で基本実装を呼び出することをお勧めします。

このメソッドの目的は、共通言語ランタイム (CLR) イベント パターン On* メソッドに似ています。このメソッドは、インスタンス ハンドラーではなくクラス ハンドラーを確立することによって、派生クラスから一致するイベントを処理する手段を提供します。 この場合、一致するイベントはルーティング イベントです。 ルーティング イベントは子要素によって発生する可能性があるため、On* メソッドの実装パターンはルーティング イベントに対して異なります。これは、必ずしもハンドラーを呼び出す要素ではありません。 そのため、実装ではイベント データのソース プロパティを調べる必要があります。 ほとんどの場合、イベントを再評価しようとしないでください。

このメソッドをオーバーライドするか、 の派生クラスContentElementを使用RegisterClassHandlerしてクラス ハンドラーを登録することで、イベントがイベント ルートに沿って受信されたときにプライベート クラス ハンドラー メソッドを呼び出すことができます。 クラス処理が適切なシナリオの 1 つは、イベント データを操作し、ルーティング イベントを処理済みとしてマークすることです。 プレビュー イベント専用のもう 1 つのシナリオは、一致するバブル クラス ハンドラーが呼び出されないように、処理済みとしてマークすることです。

適用対象

こちらもご覧ください