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()显示它。或者,如果在主窗口中显示正在加载的动画/任何内容,而不是单独的窗口,可能会更简单。