Все в моей программе WPF обычно является обычным. В этой проблеме у меня есть пользовательская кнопка меню, которая действует как MS Office button с 2007 года. При нажатии на нее появляется контекстное меню. Моя проблема заключается в том, чтобы закрыть его. После открытия контекстное меню никогда не закрывается. Я хотел бы, если бы он закрывался, когда пользователь щелкает где-нибудь вне окна меню, например, как будет действовать нормальное контекстное меню.Невозможно закрыть пользовательское окно 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?
-Я разместил этот вопрос и на другом форуме, и мне было интересно, может быть, контекстное меню - не лучший способ? По-видимому, контекстные меню отображаются главным образом, когда используется щелчок правой кнопкой мыши. Я собираюсь использовать эту кнопку, чтобы открыть главное меню моей программы. Должен ли я использовать какой-либо другой объект?
спасибо.
Спасибо вам большое! Это работает отлично! –