在WPF中快速實現鍵盤鉤子
阿新 • • 發佈:2018-07-26
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中快速實現鍵盤鉤子