c# - WPF应用程序关闭的原因是什么

标签 c# wpf

我遇到了一个奇怪的错误,即 WPF 应用程序在第一个窗口关闭后关闭。这让我很好奇是什么触发了它关闭

例如,这就是我未使用的版本。 EULAWindow 关闭后,它将关闭应用程序。

EULAWindow eula = new EULAWindow();
eula.ShowDialog();
MainMenuWindow mainWindow = new MainMenuWindow();
mainWindow.ShowDialog();

我以为它会打开 EULA,然后打开菜单窗口。我发现如果我重新排列代码,它将按预期运行。

例如,这将修复它:

EULAWindow eula = new EULAWindow();
MainMenuWindow mainWindow = new MainMenuWindow();
eula.ShowDialog();
mainWindow.ShowDialog();

这让我想到一个问题:在第一种情况下到底是什么导致应用程序关闭?

最佳答案

ShowDialog() 是一个阻塞调用。因此,在第一种情况下,您有单个窗口,然后显示它,然后让用户关闭它。最后一个 UI 窗口关闭后应用程序应该做什么?也许,遵循应用程序关闭代码?我怀疑是这样。

在第二种情况下,您在 ShowDialog() 内阻塞之前创建了两个窗口。因此,一旦您关闭第一个窗口,就会有另一个窗口可以容纳用户,并且应用程序不会关闭,它只是等待下一个窗口显示。

关于c# - WPF应用程序关闭的原因是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47639891/

相关文章:

c# - 使用 SortableBindingList<T> - DataGridView 不会自动对更改进行排序

c# - 如何停止 gridview 在 asp.net 中创建一个 div

c# - 带参数的命令

c# - 使用 XamlServices.Save() 序列化 xaml 文档时如何在每个属性后添加换行符

wpf - 分层数据、catel 和 MVVM

wpf 控件宽度绑定(bind)

c# - 在 C# 中创建子数组引用(使用不安全?)

c# - 如何配置 Application Insights 以从 .net 4.8 应用程序发送遥测数据

c# - 将 URI 打包到引用程序集中的资源

c# - WPF 中的配置管理器