首页 > 软件操作教程 > 编程开发 > C#
题目内容

C# 路由事件

题目答案

    WPF中存在一种路由事件(routed event)。标准的.NET事件会被显式订阅该事件的代码处理,且只发送到这些订阅者那里。路由事件的不同之处在于,可将事件发送到包含该控件所在层次的所有控件。


    当路由事件发生时.它会向发生该事件的控件的上层与下层控件传递。也就是说,如果右击了某个按钮,会首先将MouseRightButtonDown事件发送给该按钮本身,然后发送给该控件的父控件,在之前的示例中,就是Grid控件。如果Grid控件未处理该事件,该事件会最终传递给窗口。如果不希望该事件被继续传往更高的控件层次,只需要将RoutedEventArgs的属性Handled设置为true即可,此时不会再发生其他调用。当某个事件像这样往上层传递时,就称其为冒泡事件(bubblingevent)。


    路由事件也可以往其他方向传递,例如从根元素传往执行操作的控件。这样的事件被称为下钻事件(tunneling event),并且按照约定,所有这类事件都应该加上Preview前缀,井且总是在相应的冒泡事件之前发生。PreviewMouseRightButtonDovvn 事件就属于这一类。


    最后需要说明的是,路由事件的行为也可以和标准的.NET事件一样,只发送给执行操作的控件。

网友评论(共0条评论)

请自觉遵守互联网相关政策法规,评论内容只代表网友观点!

最新评论

点击加载更多评论>>

软件操作 新人注册送三重礼

已有 22658 名学员学习以下课程通过考试

相关视频试题

最需教育客户端 软件问题一手掌握

去 App Store 免费下载 iOS 客户端