2011-01-13 50 views
2

在我的silverlight项目中,我有一个菜单,我想要关闭它如果我点击以外的任何地方。我想补充处理程序click事件在App:Silverlight处理应用程序MouseLeftButtonDown?

AddHandler App.Current.RootVisual.MouseLeftButtonDown, AddressOf HideMenu 

问题说:它不进入处理程序,当我点击任何其他命令,或者点击有上下文相同的控制菜单,只有当我点击菜单外的空白区域时才进入。

谢谢。

回答

1

我并不知道这是一个AddHandler的签名,它只需要2个参数,也许它是一个VB的东西,你可以随它离开,它默认的第三个参数是False。此参数是handledEventsToo参数,它指示您希望您的处理程序在某个其他控件处理该事件时执行。

我猜VB是这样的: -

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

编辑

让沟壑VB代码,这是错误的反正。这里是代码在C#中应该看起来像的样子(因为绝大多数Silverlight上的代码示例都将使用C#),所以您必须熟悉翻译。

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

如果这个代码是在代码中包含用户控件的后面,HideMenu有这样的签名: -

void HideMenu(object sender, MouseEventArgs e) 
{ 
} 
+0

我如何使用你的handledEventsToo代码无效? – Saad 2011-01-13 14:36:27

相关问题