Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 键盘加速器在UWP应用程序中停止工作_C#_Xaml_Uwp_Commandbar - Fatal编程技术网

C# 键盘加速器在UWP应用程序中停止工作

C# 键盘加速器在UWP应用程序中停止工作,c#,xaml,uwp,commandbar,C#,Xaml,Uwp,Commandbar,我正在尝试将键盘加速器添加到UWP应用程序中的命令栏菜单项。当应用程序启动时,这可以正常工作,但在我第一次打开溢出菜单后,加速器停止工作。主命令(菜单外)似乎不会出现这种情况,只有溢出菜单内的辅助命令才会出现这种情况。此外,单击该菜单项时仍能正常工作 XAML: 我是在这里遗漏了什么还是这是UWP中的一个错误 编辑:我做了更多的测试,我确信这要么是设计缺陷,要么是bug。如果我将按钮设为主命令,则加速器在按钮可见时工作,但如果我调整窗口大小使其移动到溢出菜单,加速器将停止工作。由于此错误尚未解决

我正在尝试将键盘加速器添加到UWP应用程序中的命令栏菜单项。当应用程序启动时,这可以正常工作,但在我第一次打开溢出菜单后,加速器停止工作。主命令(菜单外)似乎不会出现这种情况,只有溢出菜单内的辅助命令才会出现这种情况。此外,单击该菜单项时仍能正常工作

XAML:

我是在这里遗漏了什么还是这是UWP中的一个错误


编辑:我做了更多的测试,我确信这要么是设计缺陷,要么是bug。如果我将按钮设为主命令,则加速器在按钮可见时工作,但如果我调整窗口大小使其移动到溢出菜单,加速器将停止工作。

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

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



@NicoZhu MSFT我已经阅读了MSDN文档,文档中说“如果事件没有得到处理,XAML框架会在冒泡路径之外寻找其他未受限制的应用程序加速器”。我的示例没有使用作用域加速器,它是否应该始终处于活动状态?我不是在寻找系统全局热键,只是在我的应用程序窗口内。是的,你说得对,我会将此问题报告给相关团队。看起来此问题是在今年早些时候报告的@NicoZhu MSFT是否有UWP的公共问题跟踪程序,我们可以跟踪以获取更新?嗨,我也在MSFT UWP支持团队工作。这是一个错误,我们将得到一个错误文件,但没有公开跟踪。您还可以使用Visual Studio帮助>发送反馈>报告问题菜单自己提交问题,该菜单将生成您可以跟踪的公共问题。问题似乎是键盘加速器只有在控件可见时才起作用。关于何时发布此错误修复程序有任何更新吗?
<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");
}