我正在研究在Windows XP Standard上运行的触摸屏应用程序。使用当前硬件调用右键单击用户必须单击并保持几秒钟,但这可能会干扰其他操作,例如在滚动查看器中按住重复按钮,因此我决定禁用右键单击。
理想情况下,我不想在应用程序级别禁用右键,但如果不可能,禁用右键单击Windows级别也适用于我。
答案 0 :(得分:22)
OnPreviewMouseRightButtonDown / Up方法对我不起作用。
然而,UIElement上有一个属性Stylus.IsPressAndHoldEnabled。将其设置为false以摆脱按下并按住右键单击行为。我在带有.NET 4.0的Windows 7上对此进行了测试,但该属性可从.NET 3.0获得。
< RepeatButton Stylus.IsPressAndHoldEnabled =“false”... />
还有一个博文here,它提供了一个代码示例,用于在窗口级别禁用按住。但是有了这个,只要稍后手指触摸屏幕就会触发PreviewTouchDown和TouchDown事件(这对于我猜的RepeatButton是必要的)。阅读this msdn page上的“备注”。
答案 1 :(得分:8)
您可以覆盖Window上的OnPreviewMouseRightButtonDown并将Handled设置为true。你还需要处理OnPreviewMouseRightButtonUp(感谢Vitalij指出这一点)
这应该可以解决问题。