UWP Enter нажатие клавиши не обнаружено - PullRequest
0 голосов
/ 16 декабря 2018

Я пытаюсь обнаружить нажатия клавиш в моем приложении c # uwp, но событие нажатия клавиши ввода не запускается.Я добавил событие KeyUp в главное окно, и оно запускается для всех клавиш клавиатуры, кроме клавиш ввода и пробела.Любые идеи о том, как обнаружить клавишу ввода?Строка, которую я добавил, чтобы обнаружить нажатия клавиш в XAML в тегах: KeyUp = "MainPg_KeyUp"

Ответы [ 2 ]

0 голосов
/ 16 декабря 2018
Событие

KeyDown не будет запускать системные ключи.Вам нужно будет использовать PreviewKeyDown событие.

https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.uielement.previewkeydown

<TextBox PreviewKeyDown="eventhandler"/>

 private void eventhandler(object sender, KeyRoutedEventArgs e)
 {
     if(e.Key == VirtualKey.Enter)
     {
     }
 }
0 голосов
/ 16 декабря 2018

Я бы использовал клавиатурные ускорители.Например, я хочу вызвать нажатие кнопки, когда пользователь нажимает клавишу Enter.Код будет выглядеть так:

<Button Content="Invoke Me!">
    <Button.KeyboardAccelerators>
        <KeyboardAccelerator Key="Enter" />
    </Button.KeyboardAccelerators>
</Button>

Вы также можете использовать модификаторы, такие как alt, ctrl или shift, а также клавишу, например, так:

<Button Content="Save">
    <Button.KeyboardAccelerators>
        <KeyboardAccelerator Key="S" Modifiers="Control" />
    </Button.KeyboardAccelerators>
</Button>

Вы можете разместить их на страницена уровне, но вы должны будете поместить обработчик событий в код позади. Здесь - дополнительная информация об ускорении клавиатуры.

...