Silverlight MouseMove: найти недостающие точки во время движения - PullRequest
1 голос
/ 11 июня 2010

В приложении в Silverlight, над которым я работаю, мне нужно отслеживать движения мыши.Моя проблема в том, что при использовании события MouseMove у меня нет непрерывного набора точек, если пользователь перемещает мышь достаточно быстро (если я добавлю каждую точку в списке, то получу (10,10) en, затем (20,20) ...)

Я бы хотел иметь ВСЕ точки, где была мышь во время движения.У тебя есть идеи?

1 Ответ

1 голос
/ 11 июня 2010

Это не может работать эффективно.Событие mousemove для silverlight ожидает, когда ОС отправит сигнал с координатами.Операционная система не запускает свое событие для каждой движущейся точки, если она движется очень быстро.Большинство ОС выполняет бесконечные циклы, которые проверяют состояние машины, если эти циклы быстрые, то она, вероятно, подхватит движение мыши для каждой точки.Если мышь перемещается от (1,1) к (20,20) за 0,001 мс, ОС, вероятно, вызовет событие в (10,10), или не будет вообще, если цикл не попадет вовремя.

Способ, которым вы можете ускорить это, - уменьшить коды при перемещении мыши или сделать их асинхронными.

Другой способ - это математический способ вычисления пути на основе того, что вы уже собрали..

...