Silverlight: проблема с обработчиком событий - PullRequest
2 голосов
/ 09 марта 2010

Итак, у меня есть Grid на странице, на которой есть несколько пользовательских элементов управления. Каждый UserControl имеет зарегистрированное событие MouseLeftButtonDown, как и Grid. До того, как я добавил событие в сетку, события на пользовательских элементах управления работали нормально. Но теперь, когда у меня есть событие в сетке, срабатывает только событие сетки независимо от того, где я нажимаю. Ни один из UseControls не захватывает событие.

Что мне нужно сделать, чтобы события MouseLeftButtonDown в UserControls сработали, при этом событие MouseLeftButtonDown в Grid все еще имеет?

1 Ответ

2 голосов
/ 09 марта 2010

То, что вы описываете, очень необычно.

Что часто случается в этом случае, если оба события запускаются. Так как MouseLeftButtonDown является всплывающим событием, когда вы нажимаете на UserControl, он запускает свой MouseLeftButtonDown, если привязанный к нему обработчик не устанавливает для свойства Handled параметра MouseButtonEventArgs значение True, то событие будет всплывать к родителю и так далее. Если к родительским элементам управления также прикреплен код к их MouseLeftButtonDown событиям, этот код также будет выполняться.

Уверены, что на самом деле события UserControl не срабатывают или что вы случайно заметили, что событие Grid всегда запускалось. Если вы абсолютно уверены, что присоединение обработчика событий к Grid фактически препятствует запуску событий UserControl, вы можете отредактировать свой вопрос с помощью небольшого Repro, очень трудно понять, как это может быть.

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