每个人,希望你一切都好。 这是要求:我有一个C#WPF应用程序,我想跟踪此应用程序中的事件。
不是母语人士,请原谅。 谢谢。
我在'https://github.com/justcoding121/Windows-User-Action-Hook'上找到了一个鼠标挂钩,但是它可以挂钩全局事件,而不是应用程序中的事件。
此挂钩无法挂钩WPF应用程序中的事件。
答案 0 :(得分:1)
在获得答案之前,您需要注意两件事:
1)在WPF中,除了窗口本身之外的所有东西都是人为的-所有UI元素都是通过DirectX而不是操作系统绘制的(这就是为什么,例如,在WPF中,您可以将一个按钮放到另一个按钮中,而在Windows中表格不能)。因此,操作系统无法以某种方式了解应用程序中的鼠标事件。
2)WPF中几乎所有事件都被路由-这意味着,当一个控件触发一个事件时,它实际上可以在多个地方进行处理,通常在该控件上首先进行处理,然后将树上移到并包括窗口。即使没有在树上声明声明(例如,未在Window上声明Click,但窗口仍可以间接响应自身内的单击),控制树的上(或下)将触发此事件。
顺便说一句,您可以正常使用事件(例如,this.MouseMove + = MyHandler;在窗口构造函数中,或者在XAML中使用