处理 UWP 应用程序上的“Enter”键

Posted

技术标签:

【中文标题】处理 UWP 应用程序上的“Enter”键【英文标题】:Handling 'Enter' Key on UWP application 【发布时间】:2020-09-30 06:42:42 【问题描述】:

我编写了一个 keyevent 处理程序来拦截击键并根据键执行操作。我有一个 Enter 键的操作。但是当我将键盘焦点放在一个元素上并按 Enter 键时,应用程序正在单击该元素并执行我定义的操作。单击 Enter 时如何阻止应用单击选择?

编辑:澄清一下,我希望应用停止使用 Enter 打开选定的项目,因为我已将 Enter 设置为不同的操作。

【问题讨论】:

你的意思是点击进入后禁用选择状态吗? 请出示您的代码。 @NicoZhu-MSFT 我不希望 Enter 成为选择器。当我按下回车键时,我不希望应用程序打开所选项目。 @AmlNryn,我已经在下面回复了。 【参考方案1】:

处理 UWP 应用程序上的“Enter”键

如果你想阻止 Enter 触发 Click 事件,你可以重写 Button 的 OnProcessKeyboardAccelerators 方法,如下所示。

private void MyControl_ProcessKeyboardAccelerators(UIElement sender, ProcessKeyboardAcceleratorEventArgs args)

    if (args.Key == VirtualKey.Enter)
    
        args.Handled = true;
    


【讨论】:

我走了另一条路。处理关键事件时,应用程序会将焦点设置到主页。我无法处理 Enter 但由于我改变了焦点它没有打开选定的项目。谢谢你的回答,我也试试看。 你的问题解决了吗,这个帖子有什么更新吗? 正如我在前面的评论中提到的,我已经通过检查是否处理了键并在处理时从元素中移除焦点来解决问题。我无法使用您的解决方案,因为我在 Enter 中使用在其他一些页面中进行选择,这意味着我必须在多个页面上实现事件处理程序。在我试过的那个上它有效。 酷。如果您已经解决了您的问题,您可以将其发布为答案并标记自己。当然,如果您愿意,我也可以用您的解决方案评论更新我的答案。

以上是关于处理 UWP 应用程序上的“Enter”键的主要内容,如果未能解决你的问题,请参考以下文章

如何使用键盘上的 Enter 键登录网站? [关闭]

Windows UWP中带有“Enter”键的虚拟键盘Numpad

在 Xbox 上的 UWP 应用中模拟游戏手柄输入

c# winfrom程序中 enter键关联button按钮

Windows 10 应用开发使用快捷访问键

禁用 UWP 应用与 Tab 键的交互