我开发了一个棋盘游戏,我希望在窗口按下 space 时调用一个函数,但在搜索过程中我无法找到问题的答案。 你有什么想法吗?
答案 0 :(得分:0)
有很多方法可以做到这一点。最简单的是挂钩一个事件处理程序(尽管不是最优雅的)。也可以使用涉及命令的更优雅的解决方案,具体取决于您使用的控件。
XAML
<Window KeyDown="MainWindow_OnKeyDown"
<!-- other properties -->
>
<!-- rest of your UI -->
</Window>
背后的代码
private void MainWindow_OnKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Space)
{
// do something
}
}
答案 1 :(得分:0)
XAML:
<Window ...
PreviewKeyUp="Window_PreviewKeyUp" >
</Window>
代码背后:
// Use the PreviewKeyUp event to capture the keypress before
// any child controls that have focus handle the event
private void Window_PreviewKeyUp(object sender, KeyEventArgs e)
{
if(e.Key == Key.Space)
{
AFunction();
// to prevent the key press to bubble up to child controls that have focus
e.Handled = true;
}
}