Silverlight Handle App MouseLeftButtonDown?

时间:2011-01-13 11:37:39

标签: silverlight mouseleftbuttondown

在我的silverlight项目中,我有一个菜单,如果我点击以外的任何地方,我想关闭它。我为App上的click事件添加了处理程序:

AddHandler App.Current.RootVisual.MouseLeftButtonDown, AddressOf HideMenu

问题当我点击任何其他命令时它没有进入处理程序,或者点击具有上下文菜单的同一控件,它是只有当我点击菜单外的空白区域时才输入。

感谢。

1 个答案:

答案 0 :(得分:1)

我不知道这是AddHandler的签名,只有2个参数,也许是你正在摒弃它的VB,它将第三个参数默认为False。此参数是 processedEventsToo 参数,表示即使某些其他控件已处理该事件,您也希望执行处理程序。

我猜VB会是这样的: -

AddHandler App.Current.RootVisual.MouseLeftButtonDown, AddressOf HideMenu, True

修改

让我们放弃这个VB代码,无论如何都是错误的。以下是C#中的代码应该是什么样的(你必须对翻译非常熟悉,因为Web上的绝大多数代码示例都是在C#中)。

 this.AddHandler(UIElement.MouseLeftButtonDownEvent, HideMenu, true);

此代码位于包含UserControl后面的代码中,HideMenu具有此签名: -

 void HideMenu(object sender, MouseEventArgs e)
 {
 }