加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

wpf – App xaml假设实例化的第一个窗口是主窗口(showdialog被忽

发布时间:2020-12-14 04:28:11 所属栏目:Windows 来源:网络整理
导读:我在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.Show
我在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">

当我注释掉检查CompletedInstall()的行时,manager.ShowDialog()工作正常,我的配置窗口显示.
调用CompletedInstall()时,对manager.ShowDialog()的调用立即返回,而不显示窗口.我添加了主窗口,假设在某个地方有人决定应用程序应该只显示一个窗口.

我通过在调用CompletedInstall之前设置主窗口找到了一种解决方法

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

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

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

假窗口?这不是最好的答案.它可以??

解决方法

您应该将ShutdownMode设置为OnExplicitShutdown(至少在显示初始对话框时).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读