C# WPF如何关闭通过父窗口打开的所有子窗口

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# WPF如何关闭通过父窗口打开的所有子窗口相关的知识,希望对你有一定的参考价值。

1:在父窗口上设置一个静态类型的数组属性,叫ChildrenForms或者其他什么名字。
2:父窗口在打开子窗口前,把你新建立的子窗口对象也在这数组中存一份。
3:想要关闭所有子窗口时,直接遍历父窗口的ChildrenForms数组,挨个调用Close方法即可。
参考技术A

虽然迟了点,不过这应该是个好方法:

foreach (Window item in Application.Current.Windows)

    if (item.Title == "") continue; // 跳过无标题窗口
  if (item.Title != "父窗口标题") item.Close();

如何在WPF中单击菜单项时在父窗口下打开子窗口?

【中文标题】如何在WPF中单击菜单项时在父窗口下打开子窗口?【英文标题】:How to open a child windows under parent window on menu item click in WPF? 【发布时间】:2011-11-14 11:00:16 【问题描述】:

我正在用 C# 开发一个应用程序。我在 WPF 下使用 .Net。我想打开一个新的子窗口(如对话框),它应该在主窗口中打开,就在菜单栏的下方。

但是,新打开的窗口只是显示一个操作系统任务栏。如何在主窗口下打开各种新窗口(如对话框)?

【问题讨论】:

【参考方案1】:

试试这个。

MyChildWindow cw = new MyChildWindow();
cw.ShowInTaskbar = false;
cw.Owner = Application.Current.MainWindow;
cw.Show();

【讨论】:

如果您有多个窗口并且 Application.Current.MainWindow 不是所需的窗口,您可以使用 VisualTreeHelper.GetParent 遍历树,直到到达当前窗口。 对于对话框,您应该使用 ShowDialog 而不是 Show。

以上是关于C# WPF如何关闭通过父窗口打开的所有子窗口的主要内容,如果未能解决你的问题,请参考以下文章

如何在WPF中单击菜单项时在父窗口下打开子窗口?

C# winform 父窗口子窗口按钮控制

如何在WPF中进行模态对话?

WPF关闭子窗口时刷新父页面列表数据,WPF窗体间传参

关闭父窗口时关闭所有子窗口

WPF 子窗体 在 父窗体 中 打开,初学不懂,请指教