Silverlight中的依赖属性与路由事件详解
1. 路由事件概述
在.NET开发中,事件是对象(如Silverlight元素)发送的消息,用于在重要事情发生时通知代码。WPF引入了事件路由的概念,增强了.NET事件模型,允许事件在一个元素中发起,却由另一个元素引发。例如,在一个形状上的点击事件可以向上传递到该形状的容器,再到包含该容器的页面,最后由代码处理。
Silverlight借鉴了WPF的部分路由事件模型,但进行了极大简化。WPF支持多种类型的路由事件,而Silverlight仅支持一种:冒泡事件。冒泡事件会从嵌套较深的元素沿着包含层次向上传递到其容器。此外,Silverlight的事件冒泡仅与少数键盘和鼠标输入事件(如MouseMove和KeyDown)相关,且仅由少数底层元素支持。需要注意的是,Silverlight的高级控件事件(如Click)不使用事件冒泡,并且在自定义控件的事件中也无法使用事件路由。
2. 核心元素事件
Silverlight元素的基本事件集继承自两个核心类:UIElement和FrameworkElement,所有Silverlight元素都派生自这两个元素。
2.1 UIElement类事件
UIElement类定义了处理用户输入的最重要事件,也是唯一使用事件冒泡的事件。以下是UIElement类的事件列表:
| 事件 | 是否冒泡 | 描述 |
| — | — | — |
| KeyDown | 是 | 按下键时发生 |
| KeyUp | 是 | 释放键时发生 |
| GotFocus | 是 | 焦点转移到该元素时发生
超级会员免费看
订阅专栏 解锁全文
73

被折叠的 条评论
为什么被折叠?



