问题是,我有2个用户控件,让我们调用它们A和B.它们都有MouseRightButtonDown和MouseRightButtonUp事件和usercontrol有点重叠B. 现在,当我右键单击A时,B上的鼠标事件不会触发。当我在usercontrol A上禁用mouseevents时,usercontrol B上的mouseevents会触发。
但是我怎样才能让它们同时发射?
(希望我已经清楚地解释过了)
答案 0 :(得分:0)
有点hacky但这可行,只将事件处理程序绑定到控件1并调用其他事件处理程序,如下所示:
private void textBlock1_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
Debug.WriteLine("textBlock1_MouseRightButtonDown");
textBlock2_MouseRightButtonDown(sender, e);
}
private void textBlock2_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
Debug.WriteLine("textBlock2_MouseRightButtonDown");
}
个人我不会这样做,我会尽力重新构建逻辑,而不必从两个控件之一调用另一个处理程序,但不知道你在做什么,不可能告诉。 ..
答案 1 :(得分:0)
正如我们在这里谈论Silverlight一样,我强烈建议你看看如何工作Routed Events,这是一种实际上可以帮助你避免事件重新启动的机制,因为这些是遍历Visual Tree的事件。你的元素,从上到下。
绝对比重新启动事件更好。