wpf中的路由事件

时间:2009-04-16 10:16:56

标签: c# wpf routed-events

一个众所周知的事实是,路由事件只会在祖先上下移动而不是通过所有元素。

但同样众所周知的事实是,事件处理程序可以连接在两个不同控件的公共父级中。

我的问题是如何,请一些指示。

我的XAML看起来像

<Grid Name="MainGrid">
    <Listbox Name="lb1"/>
    <Grid Name="InnerGrid">
       <Listbox Name="lb2"/>
    </Grid>
</Grid>

“lb1”上定义的鼠标事件处理程序在“InnerGrid”下被“埋葬”时不会被触发。我的问题是如何在“MainGrid”或其他地方编写一些代码,其中“lb1”上定义的事件处理程序被触发。或者可能是其他一些实现这一目标的技术。

非常感谢。

1 个答案:

答案 0 :(得分:1)

我不确定你究竟是在问什么,但似乎你希望能够调用已经处理过的事件。

试试这个:

InitializeComponent()之后的构造函数后面的代码中,调用

this.AddHandler(RoutedEvent, Delegate, bool);

传递事件(MouseDown或等),要调用的代理(类似lb1_MouseDown),然后true以表示您希望调用具有的事件已经处理好了。