一个众所周知的事实是,路由事件只会在祖先上下移动而不是通过所有元素。
但同样众所周知的事实是,事件处理程序可以连接在两个不同控件的公共父级中。
我的问题是如何,请一些指示。
我的XAML看起来像
<Grid Name="MainGrid">
<Listbox Name="lb1"/>
<Grid Name="InnerGrid">
<Listbox Name="lb2"/>
</Grid>
</Grid>
“lb1”上定义的鼠标事件处理程序在“InnerGrid”下被“埋葬”时不会被触发。我的问题是如何在“MainGrid”或其他地方编写一些代码,其中“lb1”上定义的事件处理程序被触发。或者可能是其他一些实现这一目标的技术。
非常感谢。
答案 0 :(得分:1)
我不确定你究竟是在问什么,但似乎你希望能够调用已经处理过的事件。
试试这个:
在InitializeComponent()
之后的构造函数后面的代码中,调用
this.AddHandler(RoutedEvent, Delegate, bool);
传递事件(MouseDown
或等),要调用的代理(类似lb1_MouseDown
),然后true
以表示您希望调用具有的事件已经处理好了。