在WPF应用程序中禁用右键单击(按住)。

时间:2011-05-11 09:34:57

标签: wpf touch right-click windows-xp-embedded

我正在研究在Windows XP Standard上运行的触摸屏应用程序。使用当前硬件调用右键单击用户必须单击并保持几秒钟,但这可能会干扰其他操作,例如在滚动查看器中按住重复按钮,因此我决定禁用右键单击。

理想情况下,我不想在应用程序级别禁用右键,但如果不可能,禁用右键单击Windows级别也适用于我。

2 个答案:

答案 0 :(得分:22)

OnPreviewMouseRightButtonDown / Up方法对我不起作用。

  1. 然而,UIElement上有一个属性Stylus.IsPressAndHoldEnabled。将其设置为false以摆脱按下并按住右键单击行为。我在带有.NET 4.0的Windows 7上对此进行了测试,但该属性可从.NET 3.0获得。

    < RepeatButton Stylus.IsPressAndHoldEnabled =“false”... />

  2. 还有一个博文here,它提供了一个代码示例,用于在窗口级别禁用按住。但是有了这个,只要稍后手指触摸屏幕就会触发PreviewTouchDown和TouchDown事件(这对于我猜的RepeatButton是必要的)。阅读this msdn page上的“备注”。

答案 1 :(得分:8)

您可以覆盖Window上的OnPreviewMouseRightButtonDown并将Handled设置为true。你还需要处理OnPreviewMouseRightButtonUp(感谢Vitalij指出这一点)

这应该可以解决问题。