首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法观看WPF路由的事件?

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

Stack Overflow用户
提问于 2009-07-14 09:23:44
回答 2查看 6.3K关注 0票数 16

我想知道是否有一种方法可以监视在WPF应用程序中引发的所有RoutedEvents。一种向控制台写入有关触发的事件的信息的方法将非常适合查看正在发生的事情。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-07-14 09:26:40

是的,但它需要一些反思。您最好使用像Snoop这样的工具,它已经为您完成了繁重的任务。

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

票数 15
EN

Stack Overflow用户

发布于 2009-07-14 11:53:29

我找到了另一种方法:

我已经将这个添加到我的UserControl的加载处理程序中。

代码语言:javascript
复制
var events = EventManager.GetRoutedEvents();
foreach (var routedEvent in events)
{
    EventManager.RegisterClassHandler(typeof(myUserControl), 
                                      routedEvent, 
                                      new RoutedEventHandler(handler));
}

这是处理程序的方法:

代码语言:javascript
复制
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语句。

票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1124348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档