このライブラリを使用するには、次のものが必要です。
1.接続する
2. MoonRainbow.Input.Mouse名前空間を使用して登録するには
using MoonRainbow.Input.Mouse;
3.拡張メソッドを使用して、イベントハンドラーを任意のUIElementに接続します(イベントのAttach_name-ハンドラーを追加、Dettach_ event_name-ハンドラーを削除)
this.AttachPreviewMouseLeftButtonDown(MouseLeftButtonDownPreview);
this.AttachPreviewMouseLeftButtonUp(MouseLeftButtonUpPreview);
this.AttachPreviewMouseRightButtonDown(MouseRightButtonDownPreview);
this.AttachMouseRightButtonDown(MouseRightButtonDown);
this.AttachPreviewMouseRightButtonUp(MouseRightButtonUpPreview);
this.AttachMouseRightButtonUp(MouseRightButtonUp);
同時に、プレビューハンドラーでイベント引数のHandledプロパティをtrueに設定すると、プレビューイベントに続く対応するイベントが発生しないという事実につながることを理解する必要があります。
例:
private void MouseRightButtonDownPreview(object sender, MouseRightButtonEventArgs e)
{
// , .
e.Handled = true;
}
private void MouseRightButtonDown(object sender, MouseRightButtonEventArgs e)
{
// ,
// MouseRightButtonDownPreview e.Handled true
}
4.ウィンドウレスアプリケーションパラメーターをtrueに設定します(プラグイン初期化パラメーター)
機能:
-マウスの右ボタンのサポート:
-PreviewMouseRightButtonDown
-MouseRightButtonDown
-PreviewMouseRightButtonUp
-MouseRightButtonUp
-左マウスボタンのサポートの拡張:
-PreviewMouseLeftButtonUp
-PreviewMouseLeftButtonDown
プレフィックスがプレビューのイベントは、ダウンストリームイベントのように機能します。 残りはアップストリームイベントのようなものです( 「ルーティング戦略」を参照)
また、前払いは、上記のイベントのハンドラーを最初に追加または削除しようとしたときにのみ機能するようになるという事実を考慮する価値があります。
別の事実:このライブラリを使用すると、Silvrelightプラグインのコンテキストメニューが消えます。 これは意図的に行われました。 将来、このコンテキストメニューの機能を呼び出す機能を追加する作業が行われます。
PSすべての質問とバグは、個人的またはコメントで私を見つけました。 建設的なコメントに感謝します。