2011-01-13 88 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

相關問題