WPF中的隧道路由事件(preview),书上说是可以预处理,比如,鼠标事件,先在父窗口触发鼠标事件,最后才是按钮(真正的事件源)触发
我没什么程序经验,请问,实际中,什么情况下有用,求举例,谢谢。

解决方案 »

  1.   

    比如说你为Button的模板中放入一个StackPanel,其中除了有各种其它控件以外还有一个Calendar以及一个媒体播放器控件,那么用户点击Calender也就可以触发整个按钮的click 事件,用户点击电影也可以触发整个按钮的click事件。这就是一种“从内部扩展”的思路,你可以丰富内容,而行为不变。假设你为Button添加了内容控件,结果无法触发click事件了,这不就是悲剧了嘛。这不就是winform那种难以扩展难以修改的所谓控件体系了嘛。
      

  2.   

    隧道、冒泡等是说的控制的次序。比如你需要先让父类去决定一下要不要click,那么就可以选择隧道方式。