2013-07-16 140 views
1

我的WPF程序中的所有內容通常都是自定義的。在這個問題中,我有一個自定義的菜單按鈕,它的行爲類似於2007年的MS Office button。單擊時,它會關閉上下文菜單。我的問題是試圖讓它結束。打開後,上下文菜單不會關閉。我希望當用戶點擊菜單框外的任何位置時它會關閉,比如正常的上下文菜單如何操作。無法關閉自定義ContextMenu窗口

這是我到目前爲止有:

的.xaml窗口:

<!--- MAIN MENU BUTTON --> 
     <Button Click="Button_Click_1" Margin="5,4,0,0" Name="Button_1" Height="50" VerticalAlignment="Top" HorizontalAlignment="Left" Width="49.758"> 
      <!--- MAIN MENU --> 
      <Button.ContextMenu> 
       <ContextMenu x:Name="MainContextMenu" PlacementRectangle="{Binding RelativeSource={RelativeSource Self}}" MouseLeave="ContextMenuMouseLeave" > 
        ...     
      </Button.ContextMenu> 

現在我只是想獲得它當鼠標離開菜單關閉,因爲我不知道當我在上下文菜單之外描述點擊時使用什麼關鍵字。如您所見,當鼠標離開菜單時,程序會調用「ContextMenuMouseLeave」函數。

.xaml.cs後臺代碼:

//CLOSE CONTEXT MENU 
     private void ContextMenuMouseLeave(object sender, EventArgs e) 
     { 
      MainContextMenu.IsOpen = false; 
     } 

顯然在WPF上下文菜單對象不包含Close(),或Hide()。我也試過MyContextMenu.IsOpen = false;SendKeys.SendWait("{ESC}");沒有運氣。如何讓這個菜單窗口在WPF中再次關閉?

- 我在另一個論壇發佈了這個問題,我想知道是否上下文菜單不是最好的方法嗎?顯然,上下文菜單主要是在右擊某個東西時顯示的。我將要使用這個按鈕來打開我的程序的主菜單。 我應該使用其他物體嗎?

謝謝。

回答

1

您可以設置MainContextMenu.VisibilityVisibility.Collapsed

+0

太感謝你了!這很好用! –