WPF 一个空的 WPF 程序有多少个窗口
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了WPF 一个空的 WPF 程序有多少个窗口,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2237字,纯文字阅读大概需要4分钟。
内容图文
![WPF 一个空的 WPF 程序有多少个窗口](/upload/InfoBanner/zyjiaocheng/836/f7d8ad905a9541fba4b5282fdbdc60da.jpg)
好多小伙伴说 WPF 的程序有五个窗口,但是我尝试使用了 EnumThreadWindows 去获取的时候居然拿到了 10 多个窗口 在 WPF 内部的5个窗口之 MediaContextNotificationWindow 听说有五个窗口 可以通过 user32 的 EnumThreadWindows 找到一个线程的窗口 获取线程的 id 的方法需要先获取进程,在 Loaded 之后尝试获取 WPF 的进程,通过 通过 process.Threads 可以拿到进程的线程,封装为一个方法 调用 EnumerateProcessWindowHandles 输出进程就可以拿到这个进程内的所有窗口,于是输入当前的 WPF 的进程,获取一下 返回的是 14 个窗口,但是如果将代码移动到 WPF 的构造函数,会发现只有两个窗口 WPF 内部的5个窗口之 MediaContextNotificationWindow
本文会经常更新,请阅读原文:
https://lindexi.gitee.io/post/WPF-%E4%B8%80%E4%B8%AA%E7%A9%BA%E7%9A%84-WPF-%E7%A8%8B%E5%BA%8F%E6%9C%89%E5%A4%9A%E5%B0%91%E4%B8%AA%E7%AA%97%E5%8F%A3.html
,以避免陈旧错误知识的误导,同时有更好的阅读体验。
如果你想持续阅读我的最新博客,请点击 RSS 订阅,或者前往 CSDN 关注我的主页
本作品采用
知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议
进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:
https://lindexi.gitee.io
),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请
与我联系
。
delegate bool EnumThreadDelegate(IntPtr hWnd, IntPtr lParam);
[DllImport("user32.dll")]
static extern bool EnumThreadWindows(int dwThreadId, EnumThreadDelegate lpfn,
IntPtr lParam);
Process.GetCurrentProcess()
可以拿到当前的进程 delegate bool EnumThreadDelegate(IntPtr hWnd, IntPtr lParam);
[DllImport("user32.dll")]
static extern bool EnumThreadWindows(int dwThreadId, EnumThreadDelegate lpfn,
IntPtr lParam);
static IEnumerable<IntPtr> EnumerateProcessWindowHandles(Process process)
{
var handleList = new List<IntPtr>();
foreach (ProcessThread thread in process.Threads)
{
EnumThreadWindows(thread.Id,
(hWnd, lParam) => { handleList.Add(hWnd); return true; }, IntPtr.Zero);
}
return handleList;
}
private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
var handleList = EnumerateProcessWindowHandles(Process.GetCurrentProcess());
Debug.WriteLine(handleList.Count());
}
public MainWindow()
{
var handleList = EnumerateProcessWindowHandles(Process.GetCurrentProcess());
Debug.WriteLine(handleList.Count());
InitializeComponent();
Loaded += MainWindow_Loaded;
}
内容总结
以上是互联网集市为您收集整理的WPF 一个空的 WPF 程序有多少个窗口全部内容,希望文章能够帮你解决WPF 一个空的 WPF 程序有多少个窗口所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。