拦截每次鼠标点击WPF应用程序

我想在我的WPF应用程序中拦截每次鼠标点击。 看起来这应该很容易使用命令路由机制,但对不起,我找不到任何东西。

我的应用程序实现了多个安全级别,如果没有人在x分钟内与应用程序交互(点击),则需要自动恢复到最严格的级别。 我的计划是添加一个在x分钟后过期的计时器并调整安全级别。 每次鼠标点击进入应用程序将重置计时器。

您可以注册一个类处理程序:

public partial class App : Application { protected override void OnStartup(StartupEventArgs e) { EventManager.RegisterClassHandler(typeof(Window), Window.PreviewMouseDownEvent, new MouseButtonEventHandler(OnPreviewMouseDown)); base.OnStartup(e); } static void OnPreviewMouseDown(object sender, MouseButtonEventArgs e) { Trace.WriteLine("Clicked!!"); } } 

这将处理在应用程序中创建的任何Window上的任何PreviewMouseDown事件。

   

这应该适合你。

即使其他MouseDown事件触发它包含的组件,它也会触发。

根据评论中的Clemens建议, PreviewMouseDown是比MouseDown更好的选择,因为这可以确保您无法阻止事件冒泡在不同的事件中发生。

你有几个选择:

低级鼠标钩: http : //filipandersson.multiply.com/journal/item/7?&show_interstitial = 1&u =%2Fjournal%2Fitem

WPF解决方案(我会检查这是否符合您的要求): WPF。 抓住最后一个窗口点击任意位置