应用XAML假设第一个窗口实例化是主窗口(Showdialog忽略),我需要显示多个窗口

StackOverflow https://stackoverflow.com/questions/4199932

我在app.xaml.cs中有以下代码

private void App_Start(object sender, StartupEventArgs e)
{
  if ( CompletedInstall())
  {
    //using show to allow for pacifier if loading is slow
    var manager = new WINServiceConfig();
    MainWindow = manager;
    manager.ShowDialog();
  }
}

private bool CompletedInstall()
{
    var window = new Initialize();
    window.ShowDialog();
    return window.DoLaunchManager;
}

以及app.xaml中的以下内容

<Application x:Class="Manager.App"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Startup="App_Start">

当我评论检查行 完成()Manager.showdialog() 正常工作,我的配置窗口显示。什么时候 完成() 被称为呼叫 Manager.showdialog() 立即返回而无需显示窗口。我添加了一个主窗口,假设沿线某个地方某人决定一个应用程序只能显示一个窗口。

我通过设置主窗口在致电完成之前找到解决方法

        private void App_Start(object sender, StartupEventArgs e)
        {
          var manager = new WINServiceConfig();
          MainWindow = manager;

          if (CompletedInstall())
          {
            manager.ShowDialog();
          }

但是,这迫使我根据其用途开发WinServiceConfig(特别是构造函数),因为它不能依靠已完成的先决条件。这是不好的形式。我还能做些什么来解决这个问题?

虚拟窗户?那不是最好的答案。它可以??

有帮助吗?

解决方案

您应该将shutdownmode设置为OnexplicitShutdown(至少在显示初始对话框时)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top