Ответ 1
Да, но это требует некоторого отражения. Вам лучше использовать такой инструмент, как Snoop, который уже делает тяжелый подъем для вас.
На вкладке События вы можете увидеть список событий и элемент, который обрабатывал его.
Мне было интересно, есть ли способ просмотреть все RoutedEvents, которые были созданы в приложении WPF. Способ написать некоторую информацию о событиях, запущенных на консоль, будет префектом, чтобы увидеть, что происходит.
Да, но это требует некоторого отражения. Вам лучше использовать такой инструмент, как Snoop, который уже делает тяжелый подъем для вас.
На вкладке События вы можете увидеть список событий и элемент, который обрабатывал его.
Я нашел другой способ:
Я добавил это к загруженному обработчику моего UserControl.
var events = EventManager.GetRoutedEvents();
foreach (var routedEvent in events)
{
EventManager.RegisterClassHandler(typeof(myUserControl),
routedEvent,
new RoutedEventHandler(handler));
}
и это метод обработчика:
internal static void handler(object sender, RoutedEventArgs e)
{
if (e.RoutedEvent.ToString() != "CommandManager.PreviewCanExecute" &&
e.RoutedEvent.ToString() != "CommandManager.CanExecute")
Console.WriteLine(e.OriginalSource+"=>"+e.RoutedEvent);
}
События CanExecute в моем случае слишком много. Если вы тоже хотите их увидеть, просто удалите оператор if.