在两个用户控件上触发鼠标事件

时间:2011-09-22 19:09:13

标签: c# silverlight

问题是,我有2个用户控件,让我们调用它们A和B.它们都有MouseRightButtonDown和MouseRightButtonUp事件和usercontrol有点重叠B. 现在,当我右键单击A时,B上的鼠标事件不会触发。当我在usercontrol A上禁用mouseevents时,usercontrol B上的mouseevents会触发。

但是我怎样才能让它们同时发射?

(希望我已经清楚地解释过了)

2 个答案:

答案 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的事件。你的元素,从上到下。

绝对比重新启动事件更好。