DoDragDrop отключает MouseMove Events - PullRequest
13 голосов
/ 19 апреля 2010

После запуска операции Drag & Drop с помощью DragDrop.DoDragDrop (...) события MouseMove больше не запускаются. Я даже попробовал

AddHandler(Window.MouseMoveEvent, new MouseEventHandler(myControl_MouseMove), true); 

где последний параметр означает, что я даже выбираю обработанные события. Нет шансов, кажется, что событие MouseMove никогда не запускается вообще! Есть ли способ получить MouseMove Events, используя Drag & Drop? Я хотел бы перетащить элемент управления, при перетаскивании этого элемента управления он должен следовать за указателем мыши. Есть идеи, как это сделать в этом случае?

Ответы [ 2 ]

9 голосов
/ 19 апреля 2010

Вам нужно обработать событие DragOver .

EDIT : попробуйте обработать событие GiveFeedback для элемента управления, для которого вы вызвали DoDragDrop; это может сделать то, что вы ищете.

0 голосов
/ 20 декабря 2014

Что такое конструкция DragDrop.DoDragDrop?DoDragDrop предназначен для того, чтобы вызываться в методе MouseDown / MouseMove, а не в DragDrop.Предполагается начать обработку процедуры, а не реагировать на отбрасывание (желаемый эффект отбрасывания вы реализуете непосредственно в DragDrop).MouseMove никогда не срабатывает при перетаскивании, возможно, поэтому он не срабатывает и с вами, поскольку вы установили процедуру.Я думаю, что вы справляетесь с этим неправильно, вот один из примеров http://msdn.microsoft.com/en-us/library/aa984430%28v=vs.71%29.aspx.

...