Silverlight обрабатывает комбинации клавиш - PullRequest
11 голосов
/ 12 апреля 2010

У меня есть приложение Silverlight, в котором я ловлю определенные нажатия клавиш, такие как Tab или Ctrl , чтобы выполнить какое-либо действие. Тем не менее, я хочу иметь возможность обрабатывать несколько нажатых клавиш одновременно, например, Ctrl + R или что-то в этом роде. Есть ли способ сделать это в Silverlight, и если да, то как?

Ответы [ 2 ]

15 голосов
/ 12 апреля 2010

Взгляните на Перечисление ModifierKeys , чтобы проверить наличие комбинации нескольких клавиш. См. Поддержка клавиатуры Silverlight для примеров кода и дополнительной информации.

void Canvas_KeyUp(object sender, KeyEventArgs e)
{
    //check for the specific 'v' key, then check modifiers
    if (e.Key==Key.V) { 
        if ((Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control) {
        //specific Ctrl+V action here
        }
    } // else ignore the keystroke
}
1 голос
/ 03 февраля 2012

Обработка комбинаций клавиш, таких как Cntrl + X, очень проблематична для Silverlight, поскольку вы работаете в браузере, который, вероятно, будет использовать большинство комбинаций Cntrl. Затем, учитывая, что вам, вероятно, нужно поддерживать несколько браузеров, таких как IE, Firefox и т. Д., Я рекомендую вам отказаться.

Поэтому я ограничиваю комбинации клавиш Silverlight только смещением.

...