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

时间:2019-11-09 20:36:04

标签: c# wpf

我正在尝试使用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);
            }

        }

1 个答案:

答案 0 :(得分:0)

首先免责声明:Windwos Forms和WPF等桌面技术不适用于游戏开发。回合制,单人游戏或热门座位多人游戏是您能做的最好的事情。对于Windows Forms,上限是旧的Solitair游戏。 WPF更好一些,但仍然不是一个好选择。

为了进行适当的开发,您需要带有Game Loop的东西。在.NET中,您得到了过时的XNA和these current chioces

但是回到您的问题: 假设您在画布上注册了该事件,则只有当它具有输入焦点时才会触发该事件。您将无法维护的某些东西。

类似路由和隧道事件之类的东西,但是我认为您真正想要的是热键。但是示例似乎假设您使用了命令模式,然后向其中添加了热键选项: