C#和WPF中的键盘输入不工作

C#和WPF中的键盘输入不工作,c#,wpf,xaml,keyboard-input,keyeventargs,C#,Wpf,Xaml,Keyboard Input,Keyeventargs,我正在开发一个小游戏,其中有椭圆作为目标,并在这些椭圆上显示字母表的文本块(每3秒更改一次) 我想实现一个功能,用户按下键盘上的字母表,如果该字母表与某个文本块上显示的字母表匹配,将开始一个名为“t1_hit”的故事板(动画) 我尝试了以下方法,但不起作用 XAML(仅文本块部分): 感谢您的帮助。 谢谢TextBlock无法获得焦点,因此无法捕捉键盘输入 您必须使用元素,其中是焦点。例如窗口或用户控件: public void Window_KeyDown(object sender,

我正在开发一个小游戏,其中有椭圆作为目标,并在这些椭圆上显示字母表的文本块(每3秒更改一次)

我想实现一个功能,用户按下键盘上的字母表,如果该字母表与某个文本块上显示的字母表匹配,将开始一个名为“t1_hit”的故事板(动画)

我尝试了以下方法,但不起作用

XAML(仅文本块部分):

感谢您的帮助。
谢谢

TextBlock
无法获得焦点,因此无法捕捉键盘输入

您必须使用元素,其中是焦点。例如窗口或用户控件:

    public void Window_KeyDown(object sender, KeyEventArgs e)
    {
        k = txbTarget1.Text;
        KeyConverter x = new KeyConverter();
        Key kinput = (Key)x.ConvertFromString(k);
        if (e.Key == kinput)
        {
            Storyboard h1 = this.FindResource("t1_Hit") as Storyboard;
            h1.Begin();
        }
    }
从MSDN:

UIElement.KeyDown 当焦点在此元素上时按下某个键时发生事件


你说的“不起作用”是什么意思?您是否收到错误、意外结果、无结果。事件是否均匀触发?应用程序的焦点是否在您定义的文本框内?没有结果匹配。我还没有定义任何文本框。。。。但是一个textblock那么关于硬件的任何建议我应该实现这样的功能吗?我不能用textbox代替textblock。。。这会破坏游戏的目的!
 string k = "";

        private void txbTarget1_KeyDown(object sender, KeyEventArgs e)
        {
            k = txbTarget1.Text;
            KeyConverter x = new KeyConverter();
            Key kinput = (Key)x.ConvertFromString(k);
            if (e.Key == kinput)
            {
                Storyboard h1 = this.FindResource("t1_Hit") as Storyboard;
                h1.Begin();
            }
        }
    public void Window_KeyDown(object sender, KeyEventArgs e)
    {
        k = txbTarget1.Text;
        KeyConverter x = new KeyConverter();
        Key kinput = (Key)x.ConvertFromString(k);
        if (e.Key == kinput)
        {
            Storyboard h1 = this.FindResource("t1_Hit") as Storyboard;
            h1.Begin();
        }
    }