我已经开发了一个C#应用程序,它覆盖了一些自定义控件中的PreviewMouseUp、PreviewMouseMove和PreviewMouseDown事件,允许通过单击和拖动来滚动滚动查看器。当鼠标用于拖动和滚动时,这个自定义代码在非触摸屏上工作得很好,但当我在一个真正的触摸屏显示器上使用它时,它无法工作,因为当用手指触摸和拖动显示器时,PreviewMouseUp不会触发。
我希望能够以最小的改动使用我现有的代码。这将允许我在笔记本电脑上调试时使用鼠标单击/拖动,并使用触摸屏进行触摸/拖动。
有没有办法将Windows7计算机配置为将所有触摸(PreviewTouchUp、PreviewTouchDown和PreviewTouchMove)都视为鼠标事件?
更新:我忘了提了。我认为如果触摸事件不被处理,那么.NET会在之后自动引发鼠标事件。即使我写的代码目前都没有处理Touch事件,这似乎也没有发生。你知道为什么会发生这种情况吗?
谢谢,布赖恩
发布于 2012-06-28 13:26:37
您可以对这两种方法使用相同的方法,如下所示:
protected override void OnPreviewMouseUp(MouseButtonEventArgs e)
{
OnPreviewTouchMouseUp(e);
}
protected override void OnPreviewTouchUp(TouchEventArgs e)
{
OnPreviewTouchMouseUp(e);
}
private void OnPreviewTouchMouseUp(EventArgs e)
{
}
唯一的区别是获取鼠标/触摸坐标的方式不同:
对于触摸:
e.GetTouchPoint(this).Position;
对于鼠标:
e.GetPosition(this);
https://stackoverflow.com/questions/11245551
复制