在Windows桌面应用程序中,您可以使用Escape
,RoutedCommands
和CommandBindings
为应用程序创建键盘快捷键(例如KeyBindings
退出)。但我找不到任何方法来使用Windows 8和8.1 metro应用程序。
答案 0 :(得分:1)
您可以使用AutomationProperties.AccessKey
或AutomationProperties.AcceleratorKey
(非助记键快捷键)来记录访问密钥,此信息通过辅助技术传递给用户。
你应该做的是使用KeyDown
或KeyUp
个事件,根据 MSDN :
重要设置AutomationProperties.AcceleratorKey或 AutomationProperties.AccessKey不启用键盘功能。 它只向UI自动化框架报告应该是什么键 使用,以便这些信息可以通过辅助传递给用户 技术。密钥处理的实现仍然需要 在代码中完成,而不是XAML。您仍然需要附加处理程序 KeyDown或KeyUp事件在相关控件上才能实际实现 在您的应用中实现键盘快捷键行为。
尝试此操作(例如 Ctrl + Q 到关闭应用程序):
XAML:
<Grid KeyDown="Grid_KeyDown" KeyUp="Grid_KeyUp">
<Button Content="Exit" AutomationProperties.AcceleratorKey="Control Q" />
</Grid>
代码:
public bool isCtrlKeyPressed { get; set; }
private void Grid_KeyDown(object sender, KeyRoutedEventArgs e)
{
if (e.Key == VirtualKey.Control) isCtrlKeyPressed = true;
else if (isCtrlKeyPressed && e.Key == VirtualKey.Q)
{
Application.Current.Exit();
}
}
private void Grid_KeyUp(object sender, KeyRoutedEventArgs e)
{
if (e.Key == VirtualKey.Control) isCtrlKeyPressed = false;
}