什么是路由事件以及它与正常事件的不同之处

DJa*_*Jay 14 wpf

如果有些机构能用一个简单的例子来解释,我将不胜感激.

Gis*_*shu 21

想象一个包含密集的子控件层次结构的窗口.现在让我们假设您想要做某事,在窗口的任何地方都可以右键单击.

  • 对于普通事件,您必须为所有控件处理Click事件,因为您不确定用户可能单击的位置.
  • 随着WPF的路由事件,这些事件不是"泡沫"或"隧道"(即旅游达UI树或向下),如果他们不找到一个事件处理程序,"处理",它在目前的水平.所以你可以为窗口的事件编写一个处理程序,即TopLevel.(WPF活动对,PreviewXXX和XXX的公约-第一PreviewXXX事件触发和隧道从根到控制哪些接收的刺激,然后将对应XXX事件从子控制回到高达根气泡上下).所以,如果你右键点击一个按钮,WPF向上行进UI层次结构,调用它找到的所有处理程序(除非有人标志着事件参数的事件已经"处理".)