这是C#WPF应用程序。我有Button
关闭应用程序。是否存在默认关闭事件,如窗口右上角的(x)按钮。
基本上我希望有一个纯XAML解决方案,如下所示:
<Button CloseWhenClick></Button>
而不是:
<Button Click="CloseWindow_Click"></Button>
private void Close(object sender, RoutedEventArgs e)
{
Window.Close();
}
[编辑 - 答案]
我在寻找:
<Button Command="Close"></Button>
答案 0 :(得分:1)
没有像“默认”结束事件这样的概念,但是在WPF中是一个Command概念。将您的继电器命令绑定到该按钮,您就完成了。以下是Q&amp; A的链接:WPF Standard Commands - Where's Exit?。
希望这有帮助。
问候。
答案 1 :(得分:0)
试试这个
public App()
{
Exit += new ExitEventHandler(App_Exit);
}
void App_Exit(object sender, ExitEventArgs e)
{
// TODO : are you sure ?!!
}
希望这个帮助
答案 2 :(得分: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"/>
干杯!
(你无法想象我自己发现这个命令的时间有多长了......)