WPF - Как установить событие вверх, вниз, влево, вправо, не используя клавиши со стрелками вверх, вниз, влево и вправо? - PullRequest
3 голосов
/ 05 февраля 2011

Я делаю HCI (Human Computer Interaction), используя отслеживание лица.Я пытаюсь управлять компьютером с помощью лица.

У меня 3x3 двумерная сетка кнопок.1 2 3 4 5 6 7 8 9

Предположим, текущий фокус на кнопке 5. Если я нажму стрелку вверх, то фокус будет на 2, фокус вниз на стрелке 8, стрелка влево 4 и стрелка вправо 6.

Я хочу реализовать функции со стрелками вверх, вниз, влево и вправо без использования клавиш со стрелками вверх, вниз, влево и вправо.Я уже принял решение влево, вправо, вверх и вниз.Какую обработку событий, настройку tabindex и дальнейший процесс нужно предпринять?

1 Ответ

1 голос
/ 05 февраля 2011

Если вы спрашиваете о том, как вызывать события нажатия клавиш, тогда я думаю, что вы можете использовать SendKeys Class.

Я предполагаю, что вы хотите создать программу, которая использует отслеживание лиц для преобразования движения пользователя в события UP DOWN и т. Д. Вышеупомянутый класс имеет метод Send (), который принимает код ключа и передает ключ в активное приложение.

Как:

SendKeys.Send("{UP}");//For UP arrow key

Поскольку вы уже создали методы для переноса фокуса на соответствующие кнопки в сетке, вы можете просто отправить соответствующую клавишу при возникновении события.

Однако FaceDetection - это задача исследовательского уровня, и вам нужно реализовать ее самостоятельно или найти хорошую библиотеку для вызова этих событий. <Ч /> Для этого можно использовать библиотеку OpenCVDotNet . На самом деле это оболочка .Net для библиотеки OpenCV . Зайдите на их сайт и посмотрите, как вы его используете. <Ч /> Обновление

Для генерации событий нажатия клавиш в WPF вы смотрите на этот SO-ответ.

Как программно генерировать события нажатия клавиш в C #?

...