【问题标题】:Keyboard accelerator stops working in UWP app键盘加速器在 UWP 应用中停止工作
【发布时间】: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


【解决方案1】:

由于此错误尚未解决,因此存在解决方法。

使用相同的点击事件和相同的键盘加速器创建无空格按钮(它们必须是可见的)。你不必害怕双重射击。它只会触发第一个。

<Grid Height="0" Width="0" Opacity="0">
 <Button IsTabStop="False"  Click="AppBarButton_Click">
     <Button.KeyboardAccelerators>
        <KeyboardAccelerator Key="A" Modifiers="Control" />
     </Button.KeyboardAccelerators>
 </Button>
</Grid>


<CommandBar>
    <CommandBar.SecondaryCommands>
        <AppBarButton Label="Test" Click="AppBarButton_Click">
            <AppBarButton.KeyboardAccelerators>
                <KeyboardAccelerator Key="A" Modifiers="Control" />
            </AppBarButton.KeyboardAccelerators>
        </AppBarButton>
    </CommandBar.SecondaryCommands>
</CommandBar>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-17
    • 2011-11-10
    • 2010-09-15
    • 1970-01-01
    • 1970-01-01
    • 2012-11-27
    相关资源
    最近更新 更多