我正在开发一款运行在Windows XP标准版上的触摸屏应用。目前硬件需要用户长按几秒钟来调出右键菜单,但这可能会干扰其他动作,例如在滚动查看器中按住重复按钮,因此我决定禁用右键菜单。
我理想情况下希望在应用程序级别禁用右键菜单,但如果不可能,也可以在Windows级别禁用右键菜单。
我正在开发一款运行在Windows XP标准版上的触摸屏应用。目前硬件需要用户长按几秒钟来调出右键菜单,但这可能会干扰其他动作,例如在滚动查看器中按住重复按钮,因此我决定禁用右键菜单。
我理想情况下希望在应用程序级别禁用右键菜单,但如果不可能,也可以在Windows级别禁用右键菜单。
对我而言,OnPreviewMouseRightButtonDown/Up方法没有起作用。
UIElement有一个属性Stylus.IsPressAndHoldEnabled。将其设置为false可以取消按住右键的行为。我在Windows 7上测试了.NET 4.0,但该属性从.NET 3.0开始就可用。
<RepeatButton Stylus.IsPressAndHoldEnabled="false" ... />
还有一篇博客文章在这里,提供了一个类似的禁用按住右键的代码示例。但是,使用此方法,PreviewTouchDown和TouchDown事件不会在手指触摸屏幕时立即触发(这可能对于RepeatButton是必要的),只有稍后才会触发。请阅读此msdn页面上的“备注”。