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

时间:2010-12-16 18:58:48

标签: c# wpf

我在WPF中开发了一个屏幕键盘。我需要抓住钥匙 按下事件(通过键盘)以跟踪Caps Lock,Shift 等(是否被按下)。 请注意,我的应用程序在任何其他应用程序时失去了重点 (说记事本)打开了。

有人建议如何在WPF中实现这一目标吗? 简而言之,我的WPF应用程序甚至需要捕获关键的新闻事件 虽然它没有焦点。请帮助。

2 个答案:

答案 0 :(得分:0)

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

在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" >

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

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

这是获取任何密钥的简便方法。我希望这会有所帮助。

答案 1 :(得分:0)

这对我有帮助:Disable WPF Window Focus

这与您的问题不完全相同,他正试图抓住一个事件而没有集中注意力,但这是一个很好的起点