ContentElement.OnPreviewMouseDown(MouseButtonEventArgs) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ハンドルされない 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)
パラメーター
イベント データを含む MouseButtonEventArgs。 イベント データは、1 つ以上のマウス ボタンが押されたことを報告します。
注釈
マウス ボタンのアクションは、専用の入力マネージャーによっても処理されます。 入力やコマンド バインドなど、マウス ボタンの操作に依存するその他のプログラミング機能は、一般的なマウス ボタン アクションとして公開される前に、アクションのハンドラーを呼び出す可能性があります。 これらの入力システム機能で Mouse.PreviewMouseDown イベントが処理済みとしてマークされている場合、OnPreviewMouseDown は呼び出されません。
このクラス ハンドラーを使用してイベントを処理済みとしてマークすると、次のイベントに影響を与える可能性があります: PreviewMouseLeftButtonDown と PreviewMouseRightButtonDown。 これらのイベントは、Mouse.PreviewMouseDown が受信されたときに、受信側の要素で発生する可能性があります。
このイベントをクラス処理で処理済みとしてマークすると、サブイベントは引き続き発生します。ただし、イベント データで処理された状態を渡します。 イベントがクラス処理で処理される場合、ハンドラーをアタッチするために handledEventsToo
true
で AddHandler(RoutedEvent, Delegate, Boolean) を明示的に使用しない限り、サブイベントのインスタンス ハンドラーは呼び出されません。 これらのクラス ハンドラーが handledEventsToo
true
で RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) シグネチャに登録されていない限り、クラス ハンドラーも呼び出されません。
OnPreviewMouseDownを処理することで、クラス処理が可能なすべてのマウス ボタンダウンアクションを考慮に入れたことを意味します。 この動作は望ましくない可能性があります。そのため、この仮想メソッドを使用してイベントを処理済みとしてマークする場合は注意が必要です。
各ボタン固有のダイレクト イベントには、仮想 On* メソッドもあります。これらのボタン固有のクラス ハンドラーをオーバーライドする方が適切かどうかを検討してください。
このメソッドには、既定の実装はありません。 継承の中間クラスがこのメソッドを実装する可能性があるため、実装で基本実装を呼び出することをお勧めします。
このメソッドの目的は、共通言語ランタイム (CLR) イベント パターン On* メソッドに似ています。このメソッドは、インスタンス ハンドラーではなくクラス ハンドラーを確立することによって、派生クラスからの一致するイベントを処理する手段を提供します。 この場合、一致するイベントはルーティング イベントです。 ルーティング イベントは子要素によって発生する可能性があるため、On* メソッドの実装パターンはルーティング イベントで異なります。これは、必ずしもハンドラーを呼び出す要素とは限りません。 そのため、実装では、イベント データのソース プロパティを調べる必要があります。 ほとんどの場合、イベントを再評価しないでください。
このメソッドをオーバーライドするか、クラス ハンドラーを RegisterClassHandlerに登録することで、イベント ルートに沿ってイベントが受信されたときに、ContentElement の派生クラスでプライベート クラス ハンドラー メソッドを呼び出すことができます。 クラス処理が適切なシナリオの 1 つは、イベント データを操作し、ルーティング イベントを処理済みとしてマークすることです。 プレビュー イベント専用のもう 1 つのシナリオは、一致するバブル クラス ハンドラーが呼び出されないように、処理済みとしてマークすることです。
適用対象
こちらもご覧ください
.NET