Захват событий WPF. управлять стрельбой, но не мышкой - PullRequest
0 голосов
/ 09 мая 2011

Я прочитал несколько статей по смежным вопросам, и эта статья кажется непоследовательной.

У меня есть элемент управления сеткой данных, в котором мне нужно захватить местоположение мыши при щелчке мыши. У меня есть код для этого в обработчиках mouseup и mousedown. mousedown - это то, что я хочу, но это событие никогда не запускается. Я поместил туда код и установил точку останова, и она никогда не достигает этой точки. однако mouseup срабатывает так, как и должно, но это не то событие, которое мне нужно, и я получаю непредсказуемые результаты.

есть ли какие-нибудь статьи на эту тему, чтобы объяснить, что происходит? Я предполагаю, что это какая-то проблема с перенаправленными событиями. но почему мышеловка работает, а музадаун нет? Как я могу исправить свой код, чтобы все события запускались, когда они должны?

1 Ответ

0 голосов
/ 09 мая 2011

Проблема возникает из-за того, что ячейки в сетке данных захватывают события MouseDown. Вы можете попробовать подписаться на это событие в коде через:

DataGridName.AddHandler(MouseDownEvent, new MouseButtonEventHandler(DataGridName_MouseDown), true);

Или, если это не то, что вы хотите сделать, есть также, я полагаю, событие PreviewMouseDown, которое уже назначено DataGrid, который вы можете использовать.

Надеюсь, это поможет.

...