在我的WPF应用程序中捕获没有焦点的按键事件

Kis*_*hor 8 c# wpf

我在WPF中开发了一个屏幕键盘.我需要捕捉按键事件(通过键盘),以便跟踪Caps Lock,Shift等(是否按下它们).请注意,当打开任何其他应用程序(比如记事本)时,我的应用程序会失去焦点.

谁能建议如何在WPF中实现这一目标?简而言之,我的WPF应用程序需要捕获关键的新闻事件,即使它没有焦点.请帮助.

Mar*_*k W -2

我在后面使用了一个简单的代码:

在 xaml 中,我使用名为 MyTestKey 的 KeyDown 事件。

<Window x:Class="MyApp.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        KeyDown="myTestKey" >
Run Code Online (Sandbox Code Playgroud)

这就是我检查数字 1 的 keydown 例程的样子:

private void myTestKey(object sender, KeyEventArgs e)
{
            if ((e.Key == Key.D1) || (e.Key == Key.NumPad1))
            {
                //do some stuff here
                return;
            }
}
Run Code Online (Sandbox Code Playgroud)

这是获取任意键的简单方法。我希望这有帮助。

  • 当应用程序没有焦点时它不起作用,它仅适用于焦点应用程序。错误的答案。 (11认同)