gpt4 book ai didi

c# - 检查窗口是否真正关闭的更好方法

转载 作者:可可西里 更新时间:2023-11-01 11:29:58 26 4
gpt4 key购买 nike

我想知道是否有比以下方法更好的方法来检查窗口是否关闭,或者 Closing 是否取消了关闭过程?

我们按我的方式走:

var window = Application.Current.Windows.FirstOrDefault(x => x is FooWindow);
if (window != null)
{
var gotClosed = false;
window.Closed += (sender, args) => gotClosed = true;
window.Close();
if (gotClosed == false)
{
//Close got cancled, by closing...
}
}

最佳答案

通过检查 .NET 源代码,我不太确定 IsDisposed 是否安全。虽然似乎没有很多安全的选择。到目前为止,我一直使用的没有问题的方法是在关闭后检查 Visibility 属性的 Visible

更简洁的方法可能是创建您自己的类并重写 OnClosing()OnClosed():

protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
{
// Fires Closing event
base.OnClosing(e);

if (!e.Cancel)
{
// Window was allowed to close.
// Set IsClosed = true or something like that
}
}

例如,您可以将结果存储在一个属性中。

关于c# - 检查窗口是否真正关闭的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22866911/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com