我们可以知道一个窗口是否已被用户或WPF上的代码关闭
本文关键字:用户 WPF 代码 是否 窗口 一个 我们 | 更新日期: 2023-09-27 18:15:14
我有一个窗口控制,我显示在我的应用程序。有时,窗口是由用户关闭(点击'X'按钮),有时由代码自动。
我正在收听关闭事件(也尝试关闭),并想知道在哪种情况下我是(用户或代码)。这可能吗?
(我知道这个问题,但它确实没有一个令人满意的答案)
编辑:我正在寻找一个简单的解决方案,或者知道事件起源的一些方法。我知道我可以像Sandeep Bansal建议的那样自己实现这个功能。
选项1:定义一个新类型
public class CodeClosingEventArgs : EventArgs
{
// Fill any custom data you want
}
然后在代码中显式调用OnClosed(new CodeClosingEventArgs());
并检查事件类型,如果它是一个"正常"事件参数,则通过单击"X"来确定用户。
选项2:
使用自定义方法关闭表单。
public void MyClosingFormMethod()
{
base.OnClosed(null);
}
为什么不创建一个布尔值,然后设置它,如果某些活动发生?
bool closedByUser = false;
,然后在代码意味着关闭表单的地方添加closedByUser = false;
和closedByUser = true;
,如果动作是用户派生的