0
我想从另一个窗口隐藏窗口MainWindow
。我认为下面的代码会起作用,直到我意识到它会创建另一个MainWindow
实例,然后隐藏它,而不是原始窗口!WPF无法隐藏另一个窗口
MainWindow MainWindow = new MainWindow();
MainWindow.Hide();
然后我试图只用MainWindow.Hide()
,但那是行不通的。我该怎么做?
我想从另一个窗口隐藏窗口MainWindow
。我认为下面的代码会起作用,直到我意识到它会创建另一个MainWindow
实例,然后隐藏它,而不是原始窗口!WPF无法隐藏另一个窗口
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()'。在启动时创建窗口时甚至可以找到窗口的实例吗?因为它是您启动应用程序时打开的第一个窗口。 – 2010-07-20 18:50:53
@Joel:你不能使用类型(MainWindow) - 只会显示静态方法。我的建议是使用Application.MainWindow属性。如果您试图隐藏的窗口是启动时的主应用程序窗口,这将起作用。请参阅:http://msdn.microsoft.com/en-us/library/system.windows.application.mainwindow.aspx – 2010-07-20 18:52:03
@ Reed:啊,我明白了,对不起,我误解了。虽然我仍然有问题。我跟着你的链接,并使用代码'Window mainWindow = this.MainWindow',然后在下一行使用'mainWindow.Hide()',它似乎认识到'mainWindow'是一个窗口,并给了我选项把它藏起来。当我运行该程序时,出现错误“CBR.ErrorReportingForm不包含'MainWindow'的定义,并且没有找到接受'CBR.ErrorReportingForm'类型的第一个参数的扩展方法'MainWindow'使用指令还是程序集引用?“ – 2010-07-20 19:28:28