12

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

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

4

2 回答 2

25

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

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

    <RepeatButton Stylus.IsPressAndHoldEnabled="false" ... />

  2. 这里还有一篇博文,提供了一个代码示例,用于在窗口级别禁用类似的按住。但是有了这个,PreviewTouchDown 和 TouchDown 事件将不会在手指触摸屏幕时立即引发(我猜这是 RepeatButton 所必需的),只是稍后。阅读此 msdn 页面上的“备注” 。

于 2011-08-02T12:06:51.333 回答
9

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

这应该够了吧。

于 2011-05-11T10:45:08.403 回答