gpt4 book ai didi

c# - 键盘加速器在 UWP 应用中停止工作

转载 作者:行者123 更新时间:2023-12-04 13:43:13 27 4
gpt4 key购买 nike

我正在尝试向 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 中的错误?

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

最佳答案

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

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

<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>

关于c# - 键盘加速器在 UWP 应用中停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53735503/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com