Отключите щелчок правой кнопкой мыши (нажмите и удерживайте) в приложении WPF.

Я работаю над приложением с сенсорным экраном, которое работает под управлением Windows XP Standard. При использовании текущего оборудования для вызова правой кнопкой мыши пользователь должен нажать и удерживать в течение пары секунд, но это может помешать другим действиям, таким как удерживание кнопки повтора в средстве просмотра прокрутки, поэтому я решил отключить щелчок правой кнопкой мыши.

В идеале я бы не хотел отключать щелчок правой кнопкой мыши на уровне приложения, но если это невозможно, отключение правой кнопкой мыши на уровне окон также будет работать для меня.

2 ответа

Решение

Вы можете переопределить OnPreviewMouseRightButtonDown в окне и установить для параметра Handled значение true. Вам также нужно обработать OnPreviewMouseRightButtonUp (спасибо Виталию за то, что указал на это)

Это должно делать свое дело.

Подход OnPreviewMouseRightButtonDown/Up не работал для меня.

  1. Однако в UIElement есть свойство Stylus.IsPressAndHoldEnabled. Установите значение false, чтобы избавиться от нажатия и удерживайте правую кнопку мыши. Я протестировал это на Windows 7 с.NET 4.0, но свойство доступно с.NET 3.0.

  2. Здесь также есть пост в блоге, который предоставляет пример кода для аналогичного отключения нажатий и удержания на уровне окна. Но с этим на месте события PreviewTouchDown и TouchDown не будут вызываться, как только палец коснется экрана (что будет необходимо для RepeatButton, я думаю), только позже. Прочитайте "Замечания" на этой странице MSDN.

Другие вопросы по тегам