C# WPF使用键盘上的箭头键移动图像

C# WPF使用键盘上的箭头键移动图像,c#,wpf,C#,Wpf,我试图移动一个代表玩家化身的图像,使用WPF中的箭头键。代码应允许玩家使用箭头键移动图像,但这不起作用。这是我为移动图像而编写的代码 private void Canvas_KeyDown(object sender, KeyEventArgs e) { if(e.Key == Key.Down) { Canvas.SetTop(player, Canvas.GetTop(player) -10);

我试图移动一个代表玩家化身的图像,使用WPF中的箭头键。代码应允许玩家使用箭头键移动图像,但这不起作用。这是我为移动图像而编写的代码

private void Canvas_KeyDown(object sender, KeyEventArgs e)
        {
            if(e.Key == Key.Down)
            {
                Canvas.SetTop(player, Canvas.GetTop(player) -10);
            }
            else if (e.Key == Key.Up)
            {
                Canvas.SetTop(player, Canvas.GetTop(player) - 10);
            }
            else if (e.Key == Key.Left)
            {
                Canvas.SetLeft(player, Canvas.GetLeft(player) - 10);
            }
            else if (e.Key == Key.Right)
            {
                Canvas.SetLeft(player, Canvas.GetLeft(player) + 10);
            }

        }

首先,免责声明:Windwos表单和WPF等桌面技术不适合游戏开发。Turnbased、singleplayer或hotseat多人游戏是您能做的最好的游戏。对于Windows窗体,上限是旧的Solitair游戏。WPF稍微好一点,但仍然不是一个好的选择

为了得到适当的发展,你需要一个有。在.NET中,您得到了日期为XNA和

然而,回到你的问题: 如果您在画布上注册了该事件,则只有在该事件当时具有输入焦点时才会触发该事件。你无法维持的东西

有一些东西像路由和隧道事件,但我认为你真正想要的是一个热键。然而,示例似乎表明您使用命令模式,然后向其添加热键选项: