Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF-从第二个窗口返回第一个窗口_C#_Wpf - Fatal编程技术网

C# WPF-从第二个窗口返回第一个窗口

C# WPF-从第二个窗口返回第一个窗口,c#,wpf,C#,Wpf,我有一个主窗口页面和一个加载窗口。main窗口有一个按钮,可以自动关闭并打开加载窗口。我想要的是当用户关闭加载窗口以作为新实例返回主窗口时 MainWindow.xaml.cs private void Button_Click(object sender, RoutedEventArgs e) { LoadingWindow load = new LoadingWindow(calibration , "MainWindow" , this); Mous

我有一个
主窗口
页面和一个
加载窗口
main窗口
有一个按钮,可以自动关闭并打开
加载窗口
。我想要的是当用户关闭加载窗口以作为新实例返回主窗口时

MainWindow.xaml.cs

   private void Button_Click(object sender, RoutedEventArgs e)
   {
       LoadingWindow load = new LoadingWindow(calibration , "MainWindow" , this);
       Mouse.OverrideCursor = null;
       Application.Current.MainWindow.Close();
       load.ShowDialog();  //  Exception is here the next time it is called
   }
加载window.xaml.cs

private void Close_Button(object sender, RoutedEventArgs e)
{
     MainWindow main = new MainWindow();
     this.Close();
     main.ShowDialog();
}
现在,当我试图关闭加载窗口并按下按钮时,下面的错误显示在
load.ShowDialog()
上,尽管我正在声明它的一个新实例


System.InvalidOperationException: Cannot set Visibility or call Show, ShowDialog, or WindowInteropHelper.EnsureHandle after a Window has closed

我读到你不能打开一个窗口后,你关闭它,但我有一个新的实例,这不应该使这个问题

在主窗口上,不要使用
应用程序.Current.MainWindow
实例,而是使用
this.Close()

 private void Button_Click(object sender, RoutedEventArgs e)
    {
        LoadingWindow load = new LoadingWindow(...);
        Mouse.OverrideCursor = null;
        //Application.Current.MainWindow.Close();
        this.Close();
        load.ShowDialog();  //  Exception is here the next time it is called
    }

有关差异的说明,请参阅此文档。

WPF有一个主窗口的概念。让我们将其别名为起始窗口。通常,起始窗口是mainwindow的一个实例。当您关闭启动窗口时,应用程序将关闭。这意味着当你开始工作时,你会遇到另一个问题。你可以设置主窗口是什么,你可以改变行为,但也许你的设计是这里的问题。也许您可以在加载完成后,先.Hide()主窗口,然后.Show()显示它。或者,如果在主窗口中显示正在加载的动画/任何内容,而不是单独的窗口,可能会更简单。