Как закрыть приложение WPF из контекстного меню?
есть команда в WPF закрыть приложение из контекстного меню? То есть то же самое контекстное меню, которое вы получаете, щелкнув правой кнопкой мыши по строке заголовка в любом окне?
есть множество стандартных команд, но я изо всех сил пытаюсь найти выход команда.
4 ответов
к сожалению, этого не существует. Вам нужно будет реализовать пользовательскую команду и вызвать
Application.Current.Shutdown();
существует ApplicationCommands.Близко, но нет ApplicationCommands.Выход.
посмотреть этой теме (например) для поиска альтернатив (например, создание пользовательской команды).
не так сложно на самом деле (но все же, M$ отстой для не предоставления его). Вот тебе:
public static class MyCommands
{
private static readonly ICommand appCloseCmd = new ApplicationCloseCommand();
public static ICommand ApplicationCloseCommand
{
get { return appCloseCmd; }
}
}
//===================================================================================================
public class ApplicationCloseCommand : ICommand
{
public event EventHandler CanExecuteChanged
{
// You may not need a body here at all...
add { CommandManager.RequerySuggested += value; }
remove { CommandManager.RequerySuggested -= value; }
}
public bool CanExecute(object parameter)
{
return Application.Current != null && Application.Current.MainWindow != null;
}
public void Execute(object parameter)
{
Application.Current.MainWindow.Close();
}
}
и тело AplicationCloseCommand.CanExecuteChanged
обработчик событий может даже не понадобиться.
вы используете его так:
<MenuItem Header="{DynamicResource MenuFileExit}" Command="MyNamespace:MyCommands.ApplicationCloseCommand"/>
Ура!
(вы не можете себе представить, сколько времени мне потребовалось, чтобы открыть этот командный материал...)