2013-07-16 3 views
1

Все в моей программе 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?

-Я разместил этот вопрос и на другом форуме, и мне было интересно, может быть, контекстное меню - не лучший способ? По-видимому, контекстные меню отображаются главным образом, когда используется щелчок правой кнопкой мыши. Я собираюсь использовать эту кнопку, чтобы открыть главное меню моей программы. Должен ли я использовать какой-либо другой объект?

спасибо.

ответ

1

Вы можете установить MainContextMenu.Visibility в Visibility.Collapsed

+0

Спасибо вам большое! Это работает отлично! –

Смежные вопросы