【发布时间】:2011-05-11 09:34:56
【问题描述】:
我正在开发在 Windows XP Standard 上运行的触摸屏应用程序。使用当前硬件来调用右键单击用户必须单击并按住几秒钟,但这可能会干扰其他操作,例如在滚动查看器中按住重复按钮,因此我决定禁用右键单击。
我最好不要禁用应用程序级别的右键单击,但如果不可能,禁用 Windows 级别的右键单击也对我有用。
【问题讨论】:
标签: wpf touch right-click windows-xp-embedded
我正在开发在 Windows XP Standard 上运行的触摸屏应用程序。使用当前硬件来调用右键单击用户必须单击并按住几秒钟,但这可能会干扰其他操作,例如在滚动查看器中按住重复按钮,因此我决定禁用右键单击。
我最好不要禁用应用程序级别的右键单击,但如果不可能,禁用 Windows 级别的右键单击也对我有用。
【问题讨论】:
标签: wpf touch right-click windows-xp-embedded
OnPreviewMouseRightButtonDown/Up 方法对我不起作用。
但是 UIElement 上有一个属性 Stylus.IsPressAndHoldEnabled。将其设置为 false 以摆脱按住右键单击行为。我在带有 .NET 4.0 的 Windows 7 上对此进行了测试,但该属性可从 .NET 3.0 获得。
还有一篇博文here 提供了一个代码示例,用于在窗口级别禁用类似的按住。但是有了这个,PreviewTouchDown 和 TouchDown 事件将不会在手指触摸屏幕时立即引发(我猜这是 RepeatButton 所必需的),只是稍后。阅读this msdn page上的“备注”。
【讨论】:
您可以覆盖 Window 上的 OnPreviewMouseRightButtonDown 并将 Handled 设置为 true。您还需要处理 OnPreviewMouseRightButtonUp(感谢 Vitalij 指出这一点)
这应该可以解决问题。
【讨论】: