Wpf: как обрабатывать события - PullRequest
0 голосов
/ 11 августа 2011

У меня есть невидимая кнопка, которая запускает команду при нажатии, но под ней у меня есть элемент управления, который ожидает перетаскивания. Но моя кнопка перехватывает события, поэтому перетаскивание не может произойти.

Если я установлю IsHitTestVisible = false на кнопку, то элемент управления под ним правильно обрабатывает перетаскивание.

Мне интересно, возможно ли, чтобы моя кнопка справилась со своей командой нажатия, но затем каким-то образом всплылособытия?

Так что вроде как IsHitTestVisible = false, но моя кнопка все еще может обрабатывать события ..

Я ищу решение только для xaml, так как это делается в приложении.xaml ...

Спасибо

Ответы [ 3 ]

2 голосов
/ 11 августа 2011

Я бы рассмотрел использование примитивного класса Thumb вместо невидимой кнопки.

1 голос
/ 11 августа 2011

Я бы предпочел использовать прикрепленное событие, в данном случае «MouseDown», и прикрепить его к перетаскиваемому элементу управления.Таким образом, при перетаскивании вы запустите событие MouseDown.

Вы можете узнать о прикрепленных событиях здесь , например, или о любом из множества блогов, говорящих об этом;)

0 голосов
/ 12 августа 2011

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

Не забудьте установить e.Handled=flase в обработчике, чтобы у Button был свой щелчок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...