gpt4 book ai didi

c# - WPF 在 Closing 事件中隐藏一个窗口防止应用程序终止

转载 作者:行者123 更新时间:2023-11-30 13:33:57 24 4
gpt4 key购买 nike

又是一个简单的问题。

我在 WPF 中使用一个窗口作为子窗口,我宁愿让“X”按钮隐藏窗口而不是关闭窗口。为此,我有:

private void Window_Closing(object sender, CancelEventArgs e) {
this.Hide();
e.Cancel = true;
}

问题是,当父窗口关闭时,它永远不会关闭并使应用程序保持事件状态。

有没有一种干净的方法来处理这个问题?我想在我所有的用户控件 (windows) 中添加一个 Kill 标志:

public bool KillMe;

private void Window_Loaded(object sender, RoutedEventArgs e){
KillMe = false;
}

private void Window_Closing(object sender, CancelEventArgs e) {
this.Hide();
if (!KillMe) e.Cancel = true;
}

然后在 MainWindow_Closing() 中,我必须将所有窗口 KillMe 标志设置为 true。

有什么比创建额外的标志并在关闭前忘记设置它们更好的方法吗?

最佳答案

您可以调用 Shutdown在“ parent 的”关闭处理程序中...这将导致您的取消被忽略。

来自 Window.Closing :

If Shutdown is called, the Closing event for each window is raised. However, if Closing is canceled, cancellation is ignored.

关于c# - WPF 在 Closing 事件中隐藏一个窗口防止应用程序终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4738458/

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