【发布时间】:2020-05-26 23:29:54
【问题描述】:
我正在尝试将键盘加速器添加到 UWP 应用中的 CommandBar 菜单项。这在应用程序启动时工作正常,但在我第一次打开溢出菜单后,加速器停止工作。主要命令(菜单外)似乎不会发生这种情况,只有溢出菜单内的次要命令才会发生这种情况。此外,单击时菜单项仍然可以正常工作。
XAML:
<CommandBar>
<CommandBar.SecondaryCommands>
<AppBarButton Label="Test" Click="AppBarButton_Click">
<AppBarButton.KeyboardAccelerators>
<KeyboardAccelerator Key="A" Modifiers="Control" />
</AppBarButton.KeyboardAccelerators>
</AppBarButton>
</CommandBar.SecondaryCommands>
</CommandBar>
后面的代码:
private void AppBarButton_Click(object sender, RoutedEventArgs e)
{
System.Diagnostics.Debug.WriteLine("test clicked");
}
我在这里遗漏了什么还是 UWP 中的错误?
编辑:我做了更多的测试,我相当确信这要么是设计缺陷,要么是错误。如果我将按钮设为主要命令,则加速器会在按钮可见时工作,但如果我调整窗口大小以使其移动到溢出菜单,则加速器将停止工作。
【问题讨论】:
-
@NicoZhu-MSFT 我已经阅读了 MSDN 文档,上面写着“如果未处理该事件,XAML 框架会在冒泡路径之外寻找其他无范围的应用程序加速器”。我的示例没有使用作用域加速器,它不应该始终处于活动状态吗?我不是在我的应用程序窗口中寻找系统全局热键。
-
是的,你是对的,我会向相关团队报告这个问题。
-
看起来这个问题是今年早些时候在another SO question 中报告的。 @NicoZhu-MSFT 是否有 UWP 的公共问题跟踪器,我们可以关注它以获取更新?
-
嗨,我也在 MSFT UWP 支持团队工作。这是一个错误,我们将提交一个错误,但是没有公开跟踪。您也可以使用 Visual Studio 帮助 > 发送反馈 > 报告问题菜单自己提交问题,这将生成一个您可以跟踪的公共问题。问题似乎是键盘加速器仅在控件可见时才起作用。
-
此错误修复何时发布有任何更新吗?
标签: c# xaml uwp commandbar