WPF中是否有命令从上下文菜单中关闭应用程序?也就是说,通过右键单击任何窗口上的标题栏获得相同的上下文菜单?
有很多标准命令,但我很难找到退出命令。
答案 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"/>
干杯!
(你无法想象我自己发现这个命令的时间有多长了......)