我遇到了一个奇怪的错误,即 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/