我认为这是 WPF 框架中的一个错误,没有深入了解我的程序以及为什么我要做我正在做的事情,我编写了一个简单的测试应用程序来证明我的理论。
这个问题能否得到证实?在将应用程序放入其运行循环之前执行一系列对话框有哪些可能的解决方法?
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();
}
}
}
Update:
当然,我可以改变我的设计来适应这种行为。然而我想做的事情其实很简单。
我已经导出了我的MyApplication
from Application
。上Main()
,我启动一系列启动检查,例如许可证信息、启动屏幕、连接和配置检查等。当我一切都清楚时,我打电话MyApplicatiom.Run(MyMainForm)
.
此设计基于正常的 Windows 应用程序,可以正常运行。
非常感谢您的帮助,我会记住您不能打电话ShowDialog()
before application.Run()
因为它只是初始化关闭。然而,我本以为关机序列应该只在App.Run()
操作说明。
如果我理解错误,请纠正我。
不是错误。默认ShutdownMode
of Application
is OnLastWindowClosed
,因此一旦第一个窗口关闭,您的应用程序就会开始关闭!改成OnExplicitShutdown
它会起作用,但你必须管理关闭。
我认为您可能只需要重新思考您实际上想要实现的目标。为什么在应用程序启动期间会显示两个连续的对话框窗口?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)