如何从上下文菜单中关闭WPF应用程序?

时间:2010-10-05 15:50:37

标签: wpf command

WPF中是否有命令从上下文菜单中关闭应用程序?也就是说,通过右键单击任何窗口上的标题栏获得相同的上下文菜单?

有很多标准命令,但我很难找到退出命令

4 个答案:

答案 0 :(得分:16)

不幸的是,这不存在。您必须实现自定义命令并调用

Application.Current.Shutdown();

答案 1 :(得分:1)

有一个ApplicationCommands.Close,但没有ApplicationCommands.Exit。

请参阅this thread(例如)以查找备选方案(例如创建自定义命令)。

答案 2 :(得分:1)

你的问题解决了。但是下面的代码可以帮助别人。

     Environment.Exit(0)

答案 3 :(得分:0)

实际上并不复杂(但是,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"/>

干杯!

(你无法想象我自己发现这个命令的时间有多长了......)