Как закрыть приложение WPF из контекстного меню? - PullRequest
7 голосов
/ 05 октября 2010

Есть ли в WPF команда для закрытия приложения из контекстного меню?То есть, то же самое контекстное меню, которое вы получаете, щелкая правой кнопкой мыши по строке заголовка в любом окне?

Есть множество стандартных команд, но я изо всех сил пытаюсь найти команду выхода .

Ответы [ 4 ]

16 голосов
/ 05 октября 2010

К сожалению, этого не существует. Вам нужно будет реализовать пользовательскую команду и вызвать

Application.Current.Shutdown();
1 голос
/ 22 апреля 2011

Ваша проблема решена.Но следующий код может помочь другим.

     Environment.Exit(0)
1 голос
/ 05 октября 2010

Существует ApplicationCommands.Close, но нет ApplicationCommands.Exit.

См. этот поток (например) для поиска альтернатив (например, создание пользовательской команды).

0 голосов
/ 01 марта 2014

Не так уж сложно на самом деле (но все равно 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"/>

Ура!

(Вы не можете себе представить, сколько времени я потратил на то, чтобы открыть этот командный материал сам ...)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...