C# WPF无法隐藏另一个窗口
我正试图从另一个窗口隐藏窗口C# WPF无法隐藏另一个窗口,c#,wpf,C#,Wpf,我正试图从另一个窗口隐藏窗口main窗口。我以为下面的代码可以工作,直到我意识到它只会创建另一个MainWindow实例,然后隐藏它,而不是原来的窗口 MainWindow MainWindow = new MainWindow(); MainWindow.Hide(); 然后我试着只使用MainWindow.Hide(),但这不起作用。如何操作?您需要获取要隐藏的窗口的实际实例。如果(猜测名称)这是您的主窗口,您可以尝试: Application.Current.MainWindow.Hid
main窗口
。我以为下面的代码可以工作,直到我意识到它只会创建另一个MainWindow
实例,然后隐藏它,而不是原来的窗口
MainWindow MainWindow = new MainWindow();
MainWindow.Hide();
然后我试着只使用
MainWindow.Hide()
,但这不起作用。如何操作?您需要获取要隐藏的窗口的实际实例。如果(猜测名称)这是您的主窗口,您可以尝试:
Application.Current.MainWindow.Hide();
否则,您需要一些方法来获取要隐藏的窗口的特定实例。如果要隐藏的窗口是从主窗口打开的:
//Main Window
private void OpenChildWindow()
{
ChildWindow child = new ChildWindow();
child.Show();
child.Owner = this;
}
//Child Window
private void CloseMainWindow()
{
((Window)Parent).Hide();
}
我刚刚尝试了
CBR.MainWindow.Hide()
(CBR是应用程序名),并且CBR.MainWindow
有很多属性,但是没有像Hide()
或Close()
这样的函数。在启动时创建窗口时,是否可以找到该窗口的实例?因为这是启动应用程序时打开的第一个窗口。@乔尔:您不能使用类型(MainWindow)——它只会显示静态方法。我的建议是使用Application.MainWindow属性。如果您试图隐藏的窗口是启动时的主应用程序窗口,则此操作将起作用。看:@Reed:啊,我明白了,对不起,我误解了。但是我仍然有一些问题。我按照你的链接使用了代码windowmainwindow=this.mainWindow
,然后在下一行使用了mainWindow.Hide()
,它似乎识别出“mainWindow”是一个窗口,并给了我隐藏它的选项。但是,当我运行程序时,出现错误“CBR.ErrorReportingForm不包含“MainWindow”的定义,并且找不到接受“CBR.ErrorReportingForm”类型的第一个参数的扩展方法“MainWindow”(是否缺少using指令或程序集引用?)@里德:非常感谢你到目前为止的帮助,如果你和我一样对此感到困惑,那么我将按照戴夫的方法来使用它。无论如何,谢谢!@里德:我尝试过使用你的行,但我遇到了一个错误:“非静态字段、方法或属性‘System.Windows.Application.MainWindow.get’需要对象引用。”。