单独关闭WPF窗口

Wha*_*sUP 4 c# wpf

目标:
独立关闭应用程序窗口而不影响其他窗口.该应用程序是在WPF中创建的.

问题:

无法关闭窗口

在winform中,只需要让代码winform.close()关闭窗口即可,但它在WPF中不起作用.

您可以使用此代码关闭特定窗口:

Application.Current.Windows[0].Close(); 
Run Code Online (Sandbox Code Playgroud)

但是如果你有很多窗户而你想要关闭一个特定的窗口而不影响其他窗口,它会如何工作?

HCL*_*HCL 11

使用Application类完全按照您的描述通过Application.Windows -property 获取窗口.如果您在窗口的代码隐藏中,请致电this.Close();

多个Windows的配置如果主窗口关闭(例如),如果您还想要打开应用程序,则将主窗口设置
Application.MainWindow属性并将Application.ShutdownMode设置为适当的值App.Current.ShutdownMode=ShutdownMode.OnExplicitShutdown;.

我已经观察到,有些人遇到ShutdownMode问题.解决方法是打开第一个不可见的窗口,然后在此窗口中打开可见的应用程序窗口.如果第一个创建的窗口将关闭,这可以防止应用程序关闭.但是,您应该能够通过ShutdownMode属性解决此问题.
在具有多个窗口的方案中,您可以使用" 关闭"关闭应用程序而不关闭每个窗口.

我希望这个答案是你的问题所在.如果没有,请发表评论.


小智 10

我同意HCL.您可以使用this.Close();窗口的代码隐藏,这将关闭WPF窗口winform.close();.

或者您可以使用以下代码获取关闭的特定窗口

Window win = Application.Current.Windows.OfType<Window>().SingleOrDefault(w => w.Name == "Window Name");
win.Close();
Run Code Online (Sandbox Code Playgroud)