我的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中再次關閉?
- 我在另一個論壇發佈了這個問題,我想知道是否上下文菜單不是最好的方法嗎?顯然,上下文菜單主要是在右擊某個東西時顯示的。我將要使用這個按鈕來打開我的程序的主菜單。 我應該使用其他物體嗎?
謝謝。
太感謝你了!這很好用! –