我有一个窗口,该窗口的框架包含另一个项目的页面。如果用户按下Enter键,我想得到通知。我面临的问题:
当我按下Enter键时,未触发事件,而是出现了如图所示的上下文菜单。我已经用Focus()和Keyboard.SetFocus()尝试了几件事,但是没有任何帮助。
MainWindow被最大化并且WindowStyle被设置为none,但是即使我改变了它也不会改变任何东西。如果您需要更多信息,请随时询问。
if (e.Key == Key.Enter)
{
ValidateCredentials();
}
答案 0 :(得分:0)
问题如下:根据要求,有必要使用功能键F1至F12浏览应用程序。 F10键默认激活菜单栏。 F10是上方页面的导航键。因此,当我按F10键导航到页面时,菜单栏已成为焦点。当我按Enter键时,菜单栏将打开。
解决方案将F10键设置为已处理。
答案 1 :(得分:0)
更好的答案是使用正确的事件。
您需要使用KeyDown event来捕获击键。 KeyPress或KeyUp事件在管道中为时已晚,并被引用回默认的OS Context Menu行为。您可以使用功能键,但这是用户会鄙视的一种技巧(许多键盘不再具有功能键)。
使用鼠标而不是键盘查看此示例,相同的设备输入逻辑适用:https://stackoverflow.com/a/53255798/495455