Несоответствие Silverlight MouseMove для Chrome и FF / IE - PullRequest
1 голос
/ 22 июня 2010

У меня есть список с изображениями.Я захватил MouseMove.В FF (Win7 и OSX), а также в IE8 это срабатывает всякий раз, когда указатель мыши перемещается над изображениями.Однако в Chrome (в OSX) он срабатывает только при нажатой кнопке мыши.Такое поведение Chrome на самом деле было бы весьма полезно, но только если бы я мог управлять им, а не просто случайным образом происходить в определенных браузерах.Так кто-нибудь знает, есть ли где-то общие настройки, которые заставляют его так себя вести в Chrome, или это просто несоответствие в реализациях SL?Я подозреваю последнее, так как я никогда не мог найти способ в SL проверить, нажата ли кнопка мыши.

Спасибо за любую помощь.

1 Ответ

0 голосов
/ 28 февраля 2012

Насколько я понимаю, проблема в том, что события MouseMove, MouseEnter и MouseLeave не запускаются при нажатии левой кнопки мыши.

У меня была такая же проблема с TextBox.На самом деле это произошло и в IE, и мой поиск в Google сказал мне, что это так задумано.Дальнейшее поиск в Google выявило причину: элемент захватывает мышь, используя метод CaptureMouse () .Итак, я только что получил из TextBox и переопределил OnMouseMove (...) метод:

protected override void OnMouseMove(MouseEventArgs e)
{
    base.OnMouseMove(e);
    ReleaseMouseCapture();
}

Примечание: я не уверен, является ли захват мыши единственной вещью базовой реализацииэтого метода, поэтому я добавил ReleaseMouseCapture () после его вызова, но комментирование также работает, конечно.

...