10
我想知道是否有方法來觀察WPF應用程序中引發的所有RoutedEvents。寫一些關於事件觸發到控制檯的信息的方法將是完美的,看看發生了什麼。有沒有辦法看WPF路由事件?
我想知道是否有方法來觀察WPF應用程序中引發的所有RoutedEvents。寫一些關於事件觸發到控制檯的信息的方法將是完美的,看看發生了什麼。有沒有辦法看WPF路由事件?
是的,但它需要一些反思。你最好使用像Snoop這樣的工具,它已經爲你解決了難題。
在選項卡事件您可以看到事件列表和處理它的元素。
我找到了另一種方式:
我已經添加到了我的用戶的負載處理程序。
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陳述。