窗口聚焦错误

时间:2019-06-06 05:49:02

标签: c# .net wpf

我有一个窗口,该窗口的框架包含另一个项目的页面。如果用户按下Enter键,我想得到通知。我面临的问题:

当我按下Enter键时,未触发事件,而是出现了如图所示的上下文菜单。我已经用Focus()和Keyboard.SetFocus()尝试了几件事,但是没有任何帮助。 enter image description here

MainWindow被最大化并且WindowStyle被设置为none,但是即使我改变了它也不会改变任何东西。如果您需要更多信息,请随时询问。

if (e.Key == Key.Enter)
{
    ValidateCredentials();
}

2 个答案:

答案 0 :(得分:0)

问题如下:根据要求,有必要使用功能键F1至F12浏览应用程序。 F10键默认激活菜单栏。 F10是上方页面的导航键。因此,当我按F10键导航到页面时,菜单栏已成为焦点。当我按Enter键时,菜单栏将打开。

解决方案将F10键设置为已处理。

答案 1 :(得分:0)

更好的答案是使用正确的事件。

您需要使用KeyDown event来捕获击键。 KeyPress或KeyUp事件在管道中为时已晚,并被引用回默认的OS Context Menu行为。您可以使用功能键,但这是用户会鄙视的一种技巧(许多键盘不再具有功能键)。

使用鼠标而不是键盘查看此示例,相同的设备输入逻辑适用:https://stackoverflow.com/a/53255798/495455