WPF:当用户按下关闭按钮[X]时是否会触发事件?

时间:2009-05-01 00:57:52

标签: c# wpf events

当用户按下关闭按钮时是否会触发事件?

这是因为当一个人手动关闭窗口时(使用Closing方法)并且当用户按下[X]按钮时,会触发Window Close事件...但我不知何故只有在用户按下[X]按钮时才需要知道,而不是在手动关闭窗口时。

3 个答案:

答案 0 :(得分:2)

我不相信有办法在WPF中告诉那些人(尽管我不是肯定的)。

我总是在WinForms中处理它的方法是创建一个成员变量“_Closing”,将其设置为false,以及一个将_Closing设置为true的方法“ReallyClose()”,然后调用Close。如果_Closing未设置为true,我的Closing处理程序将取消关闭。

是的,这有点像黑客,但它确实有效。

答案 1 :(得分:0)

我也认为没有办法区分它们。您可以在Application.Exit事件上放置一个处理程序,但它不区分“红色X按钮关闭”和“alt-F4关闭”(或您正在考虑的其他任何类型的关闭)。

顺便说一句,如果您检查Application.Exit,请务必检查Application.SessionEnding - 如果有人在您的应用程序运行时注销,则无法保证将调用Application.Exit。

答案 2 :(得分:0)

尝试在您的班级中放置名称为Cancel和bool变量的按钮,以便当您单击按钮将其设置为true并在Closing Event中检查是否为true使用e.Cancel = false退出窗口我尝试了一切并且它没有这对我有用,我这样做也可以删除X按钮,如果你插入一些信息,只需要接受取消按钮。