Захват событий нажатия клавиш в моем приложении WPF, которые не имеют фокуса - PullRequest
8 голосов
/ 16 декабря 2010

Я разработал экранную клавиатуру в WPF. Мне нужно захватить ключ нажмите событие (с помощью клавиатуры), чтобы отслеживать Caps Lock, Shift и т. д. (будь они нажаты). Обратите внимание, что мое приложение теряет фокус, когда любое другое приложение (скажем, блокнот) открыт.

Кто-нибудь может подсказать, как этого добиться в WPF? короче говоря, мое приложение WPF должно фиксировать события нажатия клавиш даже хотя это не имеет фокуса. Пожалуйста, помогите.

1 Ответ

0 голосов
/ 17 декабря 2010

Я использую простой код:

В xaml я использую событие KeyDown под названием MyTestKey.

<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:

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

Это простой способ добраться до любой клавиши. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...