1. 程式人生 > >在WPF中快速實現鍵盤鉤子

在WPF中快速實現鍵盤鉤子

nag Dll調用 bin != 攔截 class key and view

原文:在WPF中快速實現鍵盤鉤子

大部分的時候,當我們需要鍵盤事件的時候,可以通過在主窗口註冊KeyBinding來實現,不過,有的時候我們需要的是全局鍵盤事件,想在任何一個地方都能使用,最開始的時候我是通過鍵盤鉤子來實現的, 不過鍵盤鉤子這種DLL調用的方式怎麽都看著不大爽,這裏介紹一種通過EventManager快速實現鍵盤事件感知的例子。

    public class KeyboardEvents
    {
        public static event Action<KeyEventArgs> OnKeyDown;

        static KeyboardEvents()
        {
            EventManager.RegisterClassHandler(
typeof(Window), UIElement.KeyDownEvent, (KeyEventHandler)onKeyDown); } private static void onKeyDown(object sender, KeyEventArgs e) { if (OnKeyDown != null) OnKeyDown(e); } }

這裏只是一個簡單的例子,要實現鍵盤輸入攔截也可以用這種方式實現,感知PreviewKeyDownEvent即可,這裏就不多介紹了

在WPF中快速實現鍵盤鉤子