按住C#应用程序

时间:2017-03-15 12:10:24

标签: c# xaml raspberry-pi raspberry-pi3

我正在使用C#构建一个带有Raspberry Pi 3的机器人汽车。我可以使用用户界面上的按钮或键盘来控制它。

按钮的问题在于,当我单击按钮时,该功能将不会停止,直到我按下另一个按钮。我要么在点击按钮时需要一种检查方式,要么在按钮未被点击时进行检查。

我已经查看过按钮控制的其他帖子,但无法真正得到任何工作。

在按键的情况下,它正常工作,因为当我停止按下按钮时它停止移动。我只是将其添加到XAML页面中。这是由于KeyUp位。

KeyDown="Background_KeyDown_1" KeyUp="Background_KeyUp_1">

这是C#代码。

    //Event for when key is pressed
    private void Background_KeyDown_1(object sender, Windows.UI.Xaml.Input.KeyRoutedEventArgs e)
    {
        KeyDirection(e.Key);
    }
    //Event when key is unpressed, emulates 'Enter' which represents stop.
    private void Background_KeyUp_1(object sender, Windows.UI.Xaml.Input.KeyRoutedEventArgs e)
    {
        KeyDirection(Windows.System.VirtualKey.Enter);
    }


    //This guy is called when a key is pressed or unpressed.
    public void KeyDirection(Windows.System.VirtualKey vkey)
    { 
        //Detects which key has been pressed, then calls Direction();
        switch (vkey)
        {
            case Windows.System.VirtualKey.W:
                Direction("forwards");
                break;
            case Windows.System.VirtualKey.A:
                Direction("left");
                break;
            case Windows.System.VirtualKey.S:
                Direction("backwards");
                break;
            case Windows.System.VirtualKey.D:
                Direction("right");
                break;
            case Windows.System.VirtualKey.Enter:
                Direction("stop");
                break;
            default:
                Direction("stop");
                break;
        }
    }

截至目前,我无法找到让它发挥作用的方法。我希望以前有工作的人可以告诉我他们是如何做到的。

干杯,卡勒姆:)

0 个答案:

没有答案