尝试在 Windows 8 机器上的列表框中同时处理鼠标和触摸输入时,我得到了我认为的意外行为(因为它不同于在 Windows 7 上运行相同的软件)。
这是我处理事件的函数/方法
Private Sub Drag_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Input.InputEventArgs) Handles lvItems.PreviewMouseDown, lvItems.PreviewTouchDown
当我让它同时处理鼠标和触摸输入时,(PreviewTouchDown
和PreviewMouseDown
)它将接收两个事件(触摸事件和鼠标按钮事件),即使我为首先引发的事件设置event.Handled = True
了。TouchEventArgs
如果我从事件处理程序中删除对 PreviewTouchDown 事件的处理,我将不会收到 PreviewMouseDown 事件。
我需要的是每次触摸/点击只调用一次该方法。我无法删除 PreviewMouseDown,因为它不仅用于触摸屏。单次触摸同时传递触摸事件和鼠标事件会破坏我们的功能。
在 Windows 7 上,我只接收到触摸事件,因为我设置了handled=true,所以鼠标事件被取消了。