为什么我不能在应用程序启动时调用'new Window().ShowDialog()'2次?

Pom*_*oma 4 .net c# wpf xaml

这是XAML代码:

<Application x:Class="WpfApplication2.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             Startup="Application_Startup" />
Run Code Online (Sandbox Code Playgroud)

支持代码:

using System.Windows;

namespace WpfApplication2
{
    public partial class App : Application
    {
        private void Application_Startup(object sender, StartupEventArgs e)
        {
            new Window().ShowDialog();
            new Window().ShowDialog();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

窗口只显示一次,然后应用程序退出.为什么??

更新:我知道窗户应该显示出来.但经过我关闭第一个窗口第二不显示在所有

Ste*_*cya 5

试试这个

    private void Application_Startup(object sender, StartupEventArgs e)
    {
        var w1 = new Window();
        var w2 = new Window();

        w1.ShowDialog();
        w2.ShowDialog();
    }
Run Code Online (Sandbox Code Playgroud)

粘贴表单评论:

我认为当你关闭第一个窗口时,应用程序检查是否有其他窗口,并且它没有找到任何窗口(因此应用程序正在关闭),因为第二个窗口尚未创建

  • 你的答案不是答案,但这个评论是,而且是正确的.如果`ShutdownMode`改为`OnExplicitShutdown`则原始代码有效. (4认同)
  • 我认为当你关闭第一个窗口时,应用程序检查是否有其他窗口,并且它没有找到任何窗口(因此应用程序正在关闭),因为第二个窗口尚未创建 (2认同)