WPF和路由事件

WPF和路由事件,wpf,routed-events,Wpf,Routed Events,我有一个WPF窗口,它有一个按钮,在一个stackPanel内,在另一个stackPanel内 我为MouseDown事件的按钮编写了一个事件处理程序。 我想为按钮和父级(堆栈面板)以及父级的父级执行此eventHandler三次 通过只编写一个事件处理程序,如何使用路由事件实现这一点? 我不想重复事件处理程序代码 谢谢 实现从按钮和StackPanel的事件处理程序调用的方法 将参数的Handled属性设置为false 或者,您可以在GenericHandler方法中使用一个布尔参数,以便决定

我有一个WPF窗口,它有一个按钮,在一个stackPanel内,在另一个stackPanel内

我为MouseDown事件的按钮编写了一个事件处理程序。 我想为按钮和父级(堆栈面板)以及父级的父级执行此eventHandler三次

通过只编写一个事件处理程序,如何使用路由事件实现这一点? 我不想重复事件处理程序代码

谢谢

  • 实现从按钮和StackPanel的事件处理程序调用的方法
  • 将参数的Handled属性设置为false
  • 或者,您可以在GenericHandler方法中使用一个布尔参数,以便决定是否应该让事件冒泡

    void GenericHandler(object sender, RoutedEventArgs args)
    
    { //在这里检查args的类型并完成您的工作

    args.Handled = false; // this lets the event bubbled up.
    ...
    
    }