当前位置:  开发笔记 > 运维 > 正文

有没有办法观看WPF路由事件?

如何解决《有没有办法观看WPF路由事件?》经验,为你挑选了2个好方法。

我想知道是否有办法观察WPF应用程序中引发的所有RoutedEvent.写一些关于向控制台发起的事件的信息的方法将是完美的,看看发生了什么.



1> Sorskoot..:

我找到了另一种方式:

我已将此添加到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语句即可.



2> Kent Boogaar..:

是的,但需要反思.你最好使用像Snoop这样的工具,它已经为你提升了硬度.

在选项卡事件中,您可以看到事件列表以及处理事件的元素.

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有