Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.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实例,然后隐藏它,而不是原来的窗口 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’需要对象引用。”。