我已经创建了一个订阅WPF的触摸事件的程序。在过去的几个月里,一切都像预期的那样工作,但昨天没有一个触摸事件被触发。我试着创建一个新的,简单的程序来测试触摸事件,但它的工作原理是一样的,所有的触摸输入都会作为鼠标事件发送,即使光标从鼠标箭头变成了触摸十字光标。
我重新启动了电脑几次,并重新安装了驱动程序,但似乎没有任何改变。我试过使用不同品牌的触摸屏和不同的驱动器,以前也可以使用,现在也遇到了完全相同的问题。使用触摸屏的内置测试工具,我可以看到触控和多点触控按我的预期工作,并且查看系统属性的Pen and touch部分确认计算机正在识别触摸屏。
编辑:我继续测试显示器,多点触控似乎可以在其他windows程序中工作,比如画图。触摸似乎不只在我的应用程序中起作用。
有没有其他人经历过这种情况,或者知道如何重新启用触摸事件?
发布于 2012-12-07 21:23:53
不知何故,将窗口转换为UserControl并在WinForms窗口中托管解决了这个问题,触摸事件会像以前一样触发。
发布于 2012-09-06 16:38:13
这听起来不像是驱动程序的问题。可能在您正在释放TouchCapture的某个触地事件中。你需要检查你的代码。搜索.ReleaseTouchCapture(e.TouchDevice);并检查您是否在正确的位置使用它。
发布于 2020-04-09 19:09:24
对于这个特定问题的答案有点晚了,但由于我遇到了类似的问题,并且花了一段时间才找到解决方案,因此我想出了一个解决方案。在WPF中,按钮上的单击事件会禁用触摸输入。一个简单的解决方法是这个新类:
public class TouchButton : Button
{
public TouchButton()
{
TouchDown += TouchButton_TouchDown;
}
private void TouchButton_TouchDown(object sender, System.Windows.Input.TouchEventArgs e)
{
RaiseEvent(new RoutedEventArgs(ClickEvent));
}
}如果您将Xaml中的按钮更改为TouchButtons,则单击将由触摸(向下)自动触发。它非常简单,可以很容易地适应各种情况。
https://stackoverflow.com/questions/11139494
复制相似问题