12

Windows XP Standard で実行されているタッチ スクリーン アプリケーションに取り組んでいます。現在のハードウェアで右クリックを呼び出すには、ユーザーが数秒間クリックしたままにする必要がありますが、これはスクロールビューアーで繰り返しボタンを押し続けるなどの他のアクションを妨げる可能性があるため、右クリックを無効にすることにしました。

アプリケーションレベルでの右クリックを無効にしたくないのが理想ですが、それが不可能な場合は、Windowsレベルでの右クリックを無効にしてもうまくいきます。

4

2 に答える 2

25

OnPreviewMouseRightButtonDown/Up アプローチはうまくいきませんでした。

  1. ただし、UIElement にはStylus.IsPressAndHoldEnabledプロパティがあります。これを false に設定して、プレス アンド ホールドの右クリック動作を取り除きます。.NET 4.0 を搭載した Windows 7 でこれをテストしましたが、プロパティは .NET 3.0 から利用できます。

    <RepeatButton Stylus.IsPressAndHoldEnabled="false" ... />

  2. ウィンドウ レベルでプレス アンド ホールドを同様に無効にするためのコード サンプルを提供するブログ投稿もここにあります。しかし、これを行うと、PreviewTouchDown および TouchDown イベントは、指が画面に触れた直後に発生することはなく (RepeatButton には必要だと思います)、後でのみ発生します。この msdn ページの「備考」をお読みください。

于 2011-08-02T12:06:51.333 に答える
9

Window の OnPreviewMouseRightButtonDown をオーバーライドし、Handled を true に設定できます。OnPreviewMouseRightButtonUp も処理する必要があります (これを指摘してくれた Vitalij に感謝します)。

これでうまくいくはずです。

于 2011-05-11T10:45:08.403 に答える