Ответ 1
Вы можете переопределить OnPreviewMouseRightButtonDown в окне и установить Handled на true. Вам также необходимо обработать OnPreviewMouseRightButtonUp (спасибо Виталию за указание на это)
Это должно сделать трюк.
Я работаю над приложением для сенсорного экрана, которое работает в Windows XP Standard. При использовании текущего оборудования для вызова правой кнопки мыши пользователь должен щелкнуть и удерживать его в течение нескольких секунд, но это может помешать другим действиям, таким как удерживание кнопки повтора в scrollviewer, поэтому я решил отключить правый щелчок.
Я бы идеально хотел отключить правый щелчок на уровне приложения, но если это невозможно, отключите правый щелчок на уровне окон, также я буду работать.
Вы можете переопределить OnPreviewMouseRightButtonDown в окне и установить Handled на true. Вам также необходимо обработать OnPreviewMouseRightButtonUp (спасибо Виталию за указание на это)
Это должно сделать трюк.
Подход OnPreviewMouseRightButtonDown/Up не работал у меня.
Однако существует свойство Stylus.IsPressAndHoldEnabled на UIElement. Установите для этого значение false, чтобы избавиться от пресса и нажмите правую кнопку мыши. Я тестировал это на Windows 7 с .NET 4.0, но свойство доступно из .NET 3.0.
< RepeatButton Stylus.IsPressAndHoldEnabled = "false"... / >
Существует также blogpost здесь, в котором приведен пример кода для аналогичного отключения нажатия и удержания на уровне окна. Но при этом события PreviewTouchDown и TouchDown не будут подняты, как только палец коснется экрана (что было бы необходимо для RepeatButton, я думаю), только позже. Прочитайте "Замечания" на этой странице msdn.