WPF,
MSDN:
UIElement。PreviewMouseMove活动
鼠标指针移动时发生 而鼠标指针在此上方 元件。
正如我所看到的,这不是真的...当我PreviewMouseDown
,然后PreviewMouseUp
时,PreviewMouseMove
事件会发生干扰。这是Framework或MSDN文档漏洞中的错误吗?
我只需要区分一个元素何时真正移动,而这个“静态”“移动”会破坏我的逻辑......
函数调用log:
Function: MyCanvas.OnPreviewMouseLeftButtonDown(System.Windows.Input.MouseButtonEventArgs), Thread: 0x6F4 Main Thread
Function: MyCanvas.OnPreviewMouseMove(System.Windows.Input.MouseEventArgs), Thread: 0x6F4 Main Thread
Function: MyCanvas.OnPreviewMouseLeftButtonUp(System.Windows.Input.MouseButtonEventArgs), Thread: 0x6F4 Main Thread
Function: MyCanvas.OnPreviewMouseMove(System.Windows.Input.MouseEventArgs), Thread: 0x6F4 Main Thread
以前的日志是在获取DoubleClick事件时获得的,因此,我不认为我用鼠标移动了鼠标......
答案 0 :(得分:0)
使用简单的处理程序,我能够在没有MouseMove干扰的情况下可靠地触发PreviewMouseUp和PreviewMouseDown(以及LeftButtonUp / Down)事件。我怀疑你所看到的行为是因为,特别是对于现代高分辨率鼠标,单击它时不可能不移动鼠标(甚至非常轻微)。实际上,假设您的用户不会这样做是非常愚蠢的。没有什么能阻止用户在按住鼠标按钮的同时移动鼠标。
如果您只想在鼠标静止时注册事件序列,请在鼠标按下时记录位置,如果位置发生显着变化,则仅在鼠标按键上执行操作。