首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI

    由于 WPF 路由事件(主要是隧道和冒泡)的存在,我们很容易能够通过只监听窗口中的某些事件使得整个窗口中所有控件发生的事件都被监听到。然而,如果我们希望监听的是整个应用程序中所有的事件呢?...路由事件的路由可并不会跨越窗口边界呀? 本文将介绍我编写的应用程序窗口监视器,来监听整个应用程序中所有窗口中的路由事件。这样的方法可以用来无时无刻监视 WPF 程序的各种状态。...---- 其实问题依旧摆在那里,因为我们依然无法让路由事件跨越窗口边界。更麻烦的是,我们甚至不知道应用程序有哪些窗口,这些窗口都是什么时机显示出来的。...于是,我们只需要遍历 Windows 集合便可以获得应用程序中的所有窗口,然后对每一个窗口监听需要的路由事件。...于是,一开始的时候,我们可以监听一些窗口的激活事件。如果执行这段初始化代码的时候没有任何窗口是激活的状态,那么就监听所有窗口的激活事件;如果有一个窗口是激活的,那么就监听这个窗口的取消激活事件。

    1.7K40

    关闭模态窗口后,父窗口居然跑到了其他窗口的后面

    你会发现,模态窗口关闭后,父窗口并没有回到当前的顶层显示中。取而代之的,是其他程序的窗口(比如 Windows 资源管理器窗口)。...窗口管理器会首先试着把前台焦点交给对话框的所有者窗口,但此时这个窗口却仍然是禁止的,因此窗口管理器将跳过所有者窗口,并继续查找没有被禁止的窗口。...为解决兼容性问题的微软工程师默哀一分钟…… 我曾经尝试在模态子窗口关闭后激活一下父窗口,但这样会导致窗口的层级闪烁一下(Windows 资源管理器会短暂地显示到我们的窗口之上)。...而这本书作者推荐的方法是: 重新激活所有者窗口 销毁模态对话框 于是,我试着监听模态子窗口的 Closing 事件,在其中写下主窗口的激活调用,自此 BUG 才算解决。...或者统一模态子窗口的窗口样式,在样式中解决这个 BUG,这样,所有使用了此窗口样式的模态子窗口也将解决问题。

    10.8K20

    Qt窗口关闭和应用程序停止是否调用析构函数的一些说明

    这几天一直在模仿QQ做一个即时通讯软件,过程不是很顺利,表现在窗口关闭,应用程序依旧存在,应用程序异常结束,关闭子窗口,主窗口跟着关闭,所以总结了一些内容,方便日后获取。 ? ?...当这个父对象被删除的时候,它会遍历它的子对象类表并且删除每一个子对象,然后子对象们自己再删除它们自己的子对象,这样递归调用直到所有对象都被删除,所以如果new出来的控件,如果有指定父对象,无需我们手动删除...但是上面这些仅仅是在基本情况下,当我把窗口属性设置为无边框,无任务栏之后等等不同属性之后,再次关闭窗口,析构函数不会被自动调用,换句话说就是只是窗口关闭了,但是应用程序本身还没有关闭,最明显的特征就是当你关闭了窗口...,qt的应用程序输出窗口还是显示着红色的方块而不是绿色的三角。...这个时候可以在你想要关闭的地方添加下列代码,应用程序就会被关闭。

    3.7K10

    【记录】使用python图形库打开新窗口时候关闭之前的窗口,运行结束后关闭当前窗口和程序

    代码图片展示 代码展示 import subprocess import sys # 导入sys模块 def open_buy_quantity(): # 运行购买数量.py文件 # 关闭当前窗口...Python 的 Tkinter 库和 subprocess 模块来实现在 tkinter 窗口中打开另一个 Python 脚本的过程,并在脚本运行结束后关闭当前窗口和程序。...在你的代码中,你使用了 Tkinter 创建了一个名为 window 的主窗口,并在 open_buy_quantity 函数中调用了 window.destroy() 方法来关闭当前窗口。...这是一个简单的 GUI 应用示例,展示了如何创建窗口和关闭窗口。 subprocess 模块: subprocess 模块允许你在 Python 程序中启动新的进程。...结语 总体来说,代码展示了如何结合使用 Tkinter 和 subprocess 来实现 GUI 程序中打开外部脚本的功能,并在完成任务后退出程序。

    3.1K10

    关闭StackExchange等平台的privacy收集窗口

    技术背景 当我们打开一个StackExchange页面的时候,经常会出现一个很大的privacy收集窗口,而且不管怎么点都关闭不了,比如像下图这样: image.png 如果屏幕足够大,影响可能也不是很大...,但是关键是对于一些笔记本等小屏设备来说,这一个窗口基本挡住了所有的有用信息。...在开发者窗口中弹出的新模块中找到position标签,鼠标移上去会出现一个打勾的选中方框。 6. 点击选中方框,就可以取消privacy窗口的固定,界面上就看不见该收集窗口。...但是很多类似的网站界面打开后总是有一个privacy收集的窗口无法关闭,在很大情况下影响了我们平时的阅读。...因此我们通过前端的屏蔽方法,可以取消privacy位置收集窗口的固定,从而达到隐藏privacy收集窗口的目的。

    1.8K30

    PyQt5-如何设置主窗口居中?退出应用程序如何操作?

    1 如何实现主窗口居中显示?...让主窗口居中,其实就是让窗口的左右边缘到左右屏幕距离相等,让窗口的上下边缘到上下屏幕的距离相等;主要是需要进行计算和移动工作;可以使用 QDesktopWidget 类来获取屏幕的大小和位置信息,然后根据这些信息计算出窗口的位置和大小...app = QApplication(sys.argv) win = CenterForm() win.show() sys.exit(app.exec_())1.6 效果演示2 如何退出应用程序...2.1 使用按钮退出我们预期是使用一个按钮来点击后退出应用程序;之前我们使用的Qt Designer来实现的,主要是可视化操作;现在我们使用代码来实现看看效果;先添加一个按钮:self.button =...__init__() # 窗口尺寸 self.resize(500, 400) # 窗口标题 self.setWindowTitle("验证应用程序的退出

    1.8K40

    WPF 获取全局所有窗口的创建显示事件 监控窗口打开

    本文将告诉大家如何在 WPF 里面进行全局监控任意的窗口创建显示打开,可以获取到每个 WPF 窗口的打开的时机。...这是一个开发时的辅助机制,用来让开发者不要随便弹出窗口,我又好奇这个监控模块是如何监控到我弹出一个窗口的,学习了监控模块的机制,就写了这个博客 在 WPF 里面,可以通过 EventManager 监听全局的路由事件...于是就可以进行监控窗口创建显示 监听窗口的 SizeChangedEvent 路由事件是比较靠谱的方式,这个有一点点违反开发者的想法,开发者默认想的是使用 LoadedEvent 事件。...private void Window_SizeChanged(object sender, RoutedEventArgs e) { // 所有窗口都会触发...也可以在事件里面对每个窗口注入一些有趣的逻辑,或者是监听窗口的各个事件,输出更多日志,让开发者可以通过日志了解到当前有哪些窗口依然还在显示 这是另一位大佬写的代码,请看 https://gist.github.com

    3.2K50

    如何在Mac上查找所有32位应用程序

    最新更新的macOS Catalina 10.15将不支持32位应用,如果您不确定32位或64位应用程序是什么,那么您会很高兴知道Mac OS在“系统信息”中提供了一个方便的工具,可以快速向您显示所有64...如何在Mac上查找和查看所有32位应用程序 在Mac上查看所有32位应用程序(和64位应用程序)的最简单方法是使用系统信息 按住键盘上的OPTION / ALT键,然后拉下Apple菜单 从Apple...“no”的应用程序都是32位,每个说“yes”的应用程序都是64位 在此处的屏幕快照示例中,您可以看到这台特定的Mac已安装并正常使用了许多32位应用程序,包括Steam,SuperDuper,TextWrangler...如果找到32位应用程序,并且计划持续安装所有将来的Mac OS软件版本和更新,则需要将这些应用程序更新为64位,请与开发人员联系以寻求有关64位支持的信息,或者查找相关应用的替代品。...32位应用程序可能仍会在macOS上运行(无论如何要持续一段时间),但是Apple建议这样做会带来某种折衷。 如果在Apple下拉菜单中没有看到“系统信息”,则可能是在查看?

    2.9K10
    领券