Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DoDragDrop禁用鼠标移动事件_C#_Wpf_Drag And Drop_Mousemove - Fatal编程技术网

C# DoDragDrop禁用鼠标移动事件

C# DoDragDrop禁用鼠标移动事件,c#,wpf,drag-and-drop,mousemove,C#,Wpf,Drag And Drop,Mousemove,通过DragDrop.DoDragDrop(…)启动拖放操作后,不再触发MouseMove事件。我甚至试过 AddHandler(Window.MouseMoveEvent, new MouseEventHandler(myControl_MouseMove), true); 其中,最后一个参数表示我甚至选择加入已处理事件。没有机会,看起来MouseMove事件根本就没有被触发过!在使用拖放操作时,是否仍然可以获取MouseMove事件?我想拖放一个控件,当拖动此控件时,它将跟随鼠标指针。你

通过DragDrop.DoDragDrop(…)启动拖放操作后,不再触发MouseMove事件。我甚至试过

AddHandler(Window.MouseMoveEvent, new MouseEventHandler(myControl_MouseMove), true); 
其中,最后一个参数表示我甚至选择加入已处理事件。没有机会,看起来MouseMove事件根本就没有被触发过!在使用拖放操作时,是否仍然可以获取MouseMove事件?我想拖放一个控件,当拖动此控件时,它将跟随鼠标指针。你知道在这种情况下该怎么做吗?

你需要处理这个问题


编辑:尝试在调用
DoDragDrop
的控件上处理;这可能会满足您的需要。

什么是DragDrop.DoDragDrop结构?DoDragDrop实际上是在MouseDown/MouseMove方法中调用的,而不是在DragDrop中。它应该开始处理该过程,而不是对下降做出反应(您刚刚在DragDrop中直接实现的下降的预期效果)。MouseMove不会在已经拖动的情况下激发,也许这就是为什么它不会同时激发的原因,因为您设置了该过程。我认为您处理这个问题的方法是错误的,下面是一个示例。

感谢您的回复,因此我必须将dragover添加到我窗口中的所有控件,并让它们指向移动我的控件的单个事件处理程序?我最终使用WinApi获取光标位置,但有时也会使用dragover。看,我用Snoop来帮助我看到我的代码触发的是DragOver事件,而不是MouseMove事件。请参阅:问题在于,只有当您输入AllowDrop设置为True的控件的边界时,DragOver才会激发。当鼠标在里面移动时,它不会再次开火。因此,您无法根据鼠标位置调整视觉反馈。GiveFeedBack仅在源上激发,而不是在您悬停的源上激发。请尝试在App.Current.main窗口上使用PreviewGiveFeedback此消息线程还确认您所看到的内容: