Silverlight 参考:KeyEventArgs.Handled 属性

用于 Silverlight 的 .NET Framework 类库
KeyEventArgs.Handled 属性

获取或设置一个值,该值将路由事件标记为已处理,并阻止该事件沿事件路由而路由到更多的对象

命名空间:  System.Windows.Input
程序集:  System.Windows(在 System.Windows.dll 中)

C# 定义:

      public bool Handled { get; set; }

属性值

类型:System..::.Boolean
如果为 true,则将路由事件标记为已处理;如果为 false,则将路由事件保留为未处理,这可能允许该事件进一步路由。默认值为 false

名为 Handled 的属性存在于多个路由事件数据类上,将值设置为 true 会影响 Silverlight 事件系统的行为。如果将 Handled 设置为 true,则事件将不会沿事件路由而路由到下一对象。通常,作为应用程序事件处理程序的一部分,将 Handled 设置为 true。您需要执行此操作,这是因为启动事件的用户操作被认为已由该事件处理程序中定义的其他代码进行了适当处理。您仍然可以选择在不将 Handled 设置为 true 的情况下对处理程序中的事件做出响应,但是请注意,事件路由中的其他对象随后将接收该事件,并可能在退出当前的事件处理程序后调用他们自己的事件处理程序。

WPF 也有关于路由事件和事件数据的 Handled 属性的概念,但其实现稍微不同。如果代码中附加了事件处理程序,则 WPF 事件处理程序可以用特殊的 handledEventsToo 值注册,即使将 WPF Handled 设置为 true,路由中后面的对象也会调用这些处理程序。Silverlight 不支持此 handledEventsToo 特例;无论是在代码中还是 XAML 中附加事件处理程序,将 Handled 设置为 true 会始终阻止更多的处理程序被调用。

posted @ 2008-12-10 17:54  杰克帝.NET  阅读(889)  评论(0编辑  收藏  举报