标题相当不言自明,我正在开发 Microsoft Surface 应用程序,除了 PreviewContact(Changed/Down/etc) 集和 Contact(Changed) 之外,我不知道这两个事件处理程序集之间有什么区别/Down/etc) 设置通常不会。“预览”集仅仅是“常规”集的更新,还是与事件的触发方式有关?
问问题
348 次
1 回答
3
在 WPF(Surface SDK 所基于)中,路由事件具有三种路由策略:
- 气泡
- 隧道
- 直接的
具有冒泡策略的事件将“冒泡”可视化树,从事件源到可视化树的根 (SurfaceWindow),直到它到达可视化树的根或被处理。相反,具有隧道策略的事件将从根开始向下钻取可视树,直到到达事件源。联系事件将使用这两种策略,预览事件(例如PreviewContactDown)使用隧道策略,而非预览事件(例如ContactDown)将使用冒泡策略。
如果 ContactDown 不工作,则事件可能正在可视化树的根和事件源之间的某个位置处理。
有关 WPF 中路由事件的更多信息(此信息也适用于 Surface),我建议阅读 Brian Noyes 文章了解 WPF 中的路由事件和命令
于 2009-06-12T19:56:29.920 回答