Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >C# WPF如何关闭通过父窗口打开的所有子窗口

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

作者头像
用户9127601
发布于 2021-11-01 08:48:09
发布于 2021-11-01 08:48:09
4.6K00
代码可运行
举报
文章被收录于专栏:dotNET编程大全dotNET编程大全
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
foreach (Window item in Application.Current.Windows)
{
    if (item.Title == "") continue; // 跳过无标题窗口
  if (item.Title != "父窗口标题") item.Close();
}

WinForm时这样操作的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 遍历并关闭所有子窗口
FormCollection childCollection = Application.OpenForms;
for (int i = childCollection.Count; i-- > 0;)
{
  if (childCollection[i].Name != "父窗口标题") childCollection[i].Close();
}
// 或者也可以这样写:
FormCollection childCollection = Application.OpenForms;
for (int i = childCollection.Count; i-- > 0;)
{
  if (childCollection[i].Name != this.Title) childCollection[i].Close();
}

WPF中时这样操作的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 遍历并关闭所有子窗口
Window[] childArray = Application.Current.Windows.Cast<Window>().ToArray();
for (int i = childArray.Length; i-- > 0;)
{
  Window item = childArray[i];
  if (item.Title == "") continue; // 忽略无标题窗口
  if (item.Title != "父窗口标题") item.Close();
}
// 或者也可以这样写:
Window[] childArray = Application.Current.Windows.Cast<Window>().ToArray();
for (int i = childArray.Length; i-- > 0;)
{
  Window item = childArray[i];
  if (item.Title == "") continue; // 忽略无标题窗口
  if (item.Title != this.Title) item.Close();

总结, 注意WPF中调试要排除无标题窗口,否则会导致程序被关闭。 这里的无标题窗口是WPF的界面调试器,如果它被关闭会导致被调试的程序也被关闭,Release程序可以不用对无标题窗口进行排除。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 dotNET编程大全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死)
在微软的官方文档中,说 SetParent 可以在进程内设置,也可以跨进程设置。当使用跨进程设置窗口的父子关系时,你需要注意本文提到的一些问题,避免踩坑。
walterlv
2023/10/22
1.6K0
WPF的消息机制(三)- WPF内部的5个窗口之处理激活和关闭的消息窗口以及系统资源通知窗口
目录 WPF的消息机制(一)-让应用程序动起来 WPF的消息机制(二)-WPF内部的5个窗口 (1)隐藏消息窗口 (2)处理激活和关闭的消息窗口以及系统资源通知窗口 (3)用于用户交互的可见窗口 (4)用于UI窗口绘制的可见窗口 WPF的消息机制(三)-WPF输入事件的来源 WPF的消息机制(四)-WPF中UI的更新 处理应用程序激活和系统关闭的窗口(Window 2#) 创建时机:在调用Application.Run之后,运行到Application.EnsureHwndSource()方法当中。 用途:
葡萄城控件
2018/01/10
2K0
WPF的消息机制(三)- WPF内部的5个窗口之处理激活和关闭的消息窗口以及系统资源通知窗口
按键精灵-常用脚本命令汇集
//~~~~~~~~~~{[做后台的准备]}~~~~~~~~~~~ //下面,用标题名来找父窗口 Hwnd = Plugin.Window.Find(0, "无标题 - 记事本") //下面,根据父窗口来找子窗口(找对了标题名才有效) HwndEx = Plugin.Window.FindEx(Hwnd, 0, 0, 0) //下面,用程序名来找父窗口 Hwnd = Plugin.Window.Find("Notepad", 0) //下面,根据父窗口来找子窗口(找对了类名才有效) Hwnd = Plugi
阿炬
2018/05/11
2.5K0
使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点
制作传统 Win32 程序以及 Windows Forms 程序的时候,一个用户看起来独立的窗口本就是通过各种父子窗口嵌套完成的,有大量窗口句柄,窗口之间形成父子关系。不过,对于 WPF 程序来说,一个独立的窗口实际上只有一个窗口句柄,窗口内的所有内容都是 WPF 绘制的。
walterlv
2023/10/22
6980
使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点
windows 桌面GUI自动化-3. pywinauto 操作指定window窗口
pywinauto 操作GUI应用程序上的元素,需先找到指定窗口,基于窗口查找框架再操作。
上海-悠悠
2023/08/25
3.5K0
windows 桌面GUI自动化-3. pywinauto 操作指定window窗口
Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口的标题、位置、尺寸、最小化、可见性等各种状态
在 Windows 应用开发中,如果需要操作其他的窗口,那么可以使用 EnumWindows 这个 API 来枚举这些窗口。
walterlv
2023/10/22
2K0
Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口的标题、位置、尺寸、最小化、可见性等各种状态
【炫丽】从0开始做一个WPF+Blazor对话小程序
注 要使WPF支持Blazor,.NET版本必须是 6.0 或更高版本,本文所有示例使用的.NET 7.0,版本要求见链接,截图看如下文字:
沙漠尽头的狼
2022/11/08
8.3K0
Android窗口管理分析(3):窗口分组及Z-order的确定总结
在Android系统中,窗口是有分组概念的,例如,Activity中弹出的所有PopupWindow会随着Activity的隐藏而隐藏,可以说这些都附属于Actvity的子窗口分组,对于Dialog也同样如此,只不过Dialog与Activity属于同一个分组。之间已经简单介绍了窗口类型划分:应用窗口、子窗口、系统窗口,Activity与Dialog都属于应用窗口,而PopupWindow属于子窗口,Toast、输入法等属于系统窗口。只有应用窗口与系统窗口可以作为父窗口,子窗口不能作为子窗口的父窗口,也就说
看书的小蜗牛
2018/06/29
2.8K0
C/C++ 遍历窗口标题类名
遍历每个进程,一次查找进程下的窗口,找到窗口标题为 “” ,窗口类名为 “RunDll” 的窗口。如果找到返回 true ,没找到返回 false。
王瑞MVP
2022/12/28
1.2K0
win32程序之子窗口编程
  在前边我们已经讲解了窗口的本质.以及如何注册窗口类跟创建窗口. 还讲了消息循环.
IBinary
2018/09/28
1.9K0
win32程序之子窗口编程
疯狂吐槽 MAUI 以及 MAUI 入坑知识点
目前 .NET 已经升级到 7.0,但是 MAUI 还是一如既往的拉跨,如果开发过 MAUI,做过定制,自定义标题栏之类的,便会发现 MAUI 有多难受。
痴者工良
2023/02/02
6.1K4
疯狂吐槽 MAUI 以及 MAUI 入坑知识点
WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口)
发布于 2018-07-11 13:35 更新于 2018-07-12 11:44
walterlv
2018/09/18
4.4K0
WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口)
layui弹窗间的传值(layui弹出层传值)(窗口传值)[通俗易懂]
主要有两部分 1、从主窗口传值到弹出层 2、从弹出层传值到主窗口 3、通过session互传 4、通过调用父窗口的函数从而获取到父窗口的值(相反也是可以的)
全栈程序员站长
2022/07/01
7.6K0
layui弹窗间的传值(layui弹出层传值)(窗口传值)[通俗易懂]
c++ | lwketh | day04
note 已知 api 功能: - create_window - window_callback 系统会在窗口事件发生后调用的函数 - 给窗口绑定事件 在 windows 中,事件被称之为消息 - 窗口发生不同事件(案件/鼠标移动等)的时候本函数会自动调用 - PostQuitMessage - buttonAction - keyboardAction
李朝
2021/07/28
3820
当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小
做无边框窗口之后,我们有方法可以让窗口的标题栏区域和边缘调大小的区域继续正常工作,直到——这个窗口上面覆盖了其他的子窗口。这个子窗口会吃掉消息导致父窗口的边缘无法再继续处理这些消息。
walterlv
2023/10/22
4360
当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小
WPF 应用完全模拟 UWP 的标题栏按钮
发布于 2018-08-04 09:35 更新于 2018-08-05 02:21
walterlv
2018/09/18
2.3K0
WPF 应用完全模拟 UWP 的标题栏按钮
windows GUI自动化怎么做
最近在搞SAP的自动化。因为公司没考虑预算,不能用RPA。 首先用SAP自带的录制工具,不太行,各种弹框没法处理。 思来想去,打算用python来整。先用tracker来录制,创建业务流程还好,但是一旦要处理弹框,上传附件,就有点吃力了。 然后用了python的一些库来对付。 pyperclip 剪切板 pymouse 鼠標操作 pykeyboard 鍵盤曹祖 win32com win32gui pyautogui pywinauto uiautomation pywin32是一个Python库,为python提供访问Windows API的扩展,提供了齐全的windows常量、接口、线程以及COM机制等等。 pythoncom是pywin32库的一部分,运行脚本后,即可通过键盘的上下左右键控制鼠标移动了 pyhook 監聽輸入操作 pynput这个库让你可以控制和监控输入设备 这些库各有千秋,让我分別道来。
赵云龙龙
2022/12/01
2.4K0
WPF 使用 WindowChrome,在自定义窗口标题栏的同时最大程度保留原生窗口样式(类似 UWP/Chrome)
发布于 2018-07-12 07:57 更新于 2018-09-05 05:46
walterlv
2018/09/18
6.8K0
WPF 使用 WindowChrome,在自定义窗口标题栏的同时最大程度保留原生窗口样式(类似 UWP/Chrome)
windows程序设计第五版_程序设计中三种基本结构
WNDCLASS是一个由系统支持的结构,用来储存某一类窗口的信息,如ClassStyle,消息处理函数,Icon,Cursor,背景Brush等。也就是说,CreateWindow只是将某个WNDCLASS定义的窗体变成实例。 结构WNDCLASS包含一个窗口类的全部信息,也是Windows编程中使用的基本数据结构之一,应用程序通过定义一个窗口类确定窗口的属性
全栈程序员站长
2022/09/23
5040
JavaScript面向对象之Windows对象
JavaScript之Window对象 首先我们先了解一个概念:事件。 事件,就是把一段代码设置好,满足条件时触发。或者说,事件是可以被 JavaScript 侦测到的行为。 网页中每个元素都可以触发JavaScript事件。 我们先来看一个简单的事件: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html
二十三年蝉
2018/02/27
1.1K0
JavaScript面向对象之Windows对象
推荐阅读
相关推荐
使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档