我认为这是WPF框架中的一个bug,不想深入探究我的程序和我所做的事情,我写了一个简单的测试应用程序来证明我的理论。
这个问题能被确认吗?在将应用程序放入运行循环之前执行一系列对话框的可能解决方法有哪些?
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Windows;
namespace ShowDialogWindow
{
/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
Window testWindow = new Window();
testWindow.ShowDialog();
testWindow.Close();
// THE CODE BELOW WILL NOT SHOW THE NEXT WINDOW
Window testWindow2 = new Window();
testWindow2.ShowDialog();
testWindow2.Close();
}
}
}
更新:
当然,我可以更改我的设计来适应这种行为。不过我原本尝试的东西非常简单。
我从Application
派生出了我的MyApplication
。在Main()
中,我启动了一系列的启动检查,例如许可证信息、闪屏、连接性和配置检查等。当我获得全部清除后,我调用MyApplication.Run(MyMainForm)
。
这个设计是基于一个正常的Windows应用程序,没有任何问题。
非常感谢您的帮助,并且我会记住,在application.Run()
之前不能调用ShowDialog()
,因为它只是初始化关闭。然而,我认为关闭序列应该仅在App.Run()
指令之后启动。
如果我理解错了,请纠正我。