在Windows 10 UWP和ContentDialog中使用键盘加速键和键盘访问键

问题描述

使用Windows 10 UWP内容对话框时,对话框后面的页面“显示为灰色”,并且按钮和其他控件对单击事件不响应(良好!)。但是,我发现键盘加速器(例如CTRL-X)或键盘访问键(例如Alt-A)仍然处于活动状态。这可能会导致很多问题(在我的情况下,要么重新调用出现错误的内容对话框,要么在对话框仍处于活动状态时离开页面)。我发现的唯一解决方法是在显示内容对话框时手动禁用所有受影响的控件,但是我希望有人能有更好的解决方案。

更新: 感谢您的评论。我创建了一个新项目进行仔细检查,并且还仔细检查了自己的项目。我发现的是:我在KeyboardAccelerator(即CTRL-X)上的错误不起作用(应该不会)。但是,我已经确认,在我的简单测试项目和我的原始测试项目中,AccessKey(即ALT-X)确实可以与显示的内容对话框一起使用。参见下图...选择ALT会在对话框打开的情况下突出显示键,并且按下“ s”或“ x”确实会触发按钮单击事件。

enter image description here

解决方法

我认为我找到了一个很好的解决方案(至少对于我的用例而言)。我创建了一个通用函数来调用任何ContentDialogs。我将当前页面传递给该函数。在显示对话框之前,我将Page.IsEnabled属性设置为false,然后在关闭对话框时退出函数时将其设置为true。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...