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

标签 c# 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!!");
        }
    }

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

关于c# - 拦截每次鼠标点击 WPF 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13232714/

相关文章:

c# - 调用 Assembly.Load(byte[]) 可以引发 AppDomain.AssemblyResolve 事件吗?

c# - 当 Debug.Assert 失败时导致 VS2010 调试器中断

wpf - 如何在 WPF 中读取用户的自定义键盘快捷键?

c# - 如何在 wpf 数据网格中显示具有动态字段的对象?

c# - 动态绑定(bind)到枚举

c# - 是否可以在 WPF DataGrid 中获取嵌套列?

c# - 将多个 ComboBox 绑定(bind)到单个列表 - 问题 : When I select an item, 所有组合框更改

c# - 如何使用反射调用带参数的非泛型静态扩展方法

c# - 依赖注入(inject)和其他构造函数参数 - 不好的做法?

C# 可变数组项?