首页 > 解决方案 > 如何检测 WPF 中的按键?

问题描述

我在 WPF 中编写了一个带有几个按钮的桌面应用程序。到目前为止它有效,但现在我想将按钮链接到键。我希望程序检测是否按下按钮,然后执行 Button_click 方法。我试图通过添加这个方法来实现这一点

public void Window1_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
    {
        switch (e.Key)
        {
            case Key.D0:
                Button0_Click(new object(), new RoutedEventArgs());
                break;
            case Key.D1:
                Button1_Click(new object(), new RoutedEventArgs());
                break;
            case Key.D2:
                Button2_Click(new object(), new RoutedEventArgs());
                break;
            case Key.D3:
                Button2_Click(new object(), new RoutedEventArgs());
                break;
            case Key.D4:
                Button4_Click(new object(), new RoutedEventArgs());
                break;
        }
    }

但它根本没有用。如何将定义的按钮方法链接到键?

标签: c#wpfuikeyinput

解决方案


您需要实施key event handler例如关键Enter

请参阅此处的 Microsoft 文档

XAML 代码

<StackPanel>
 <TextBlock Width="300" Height="20">
    Type some text into the TextBox and press the Enter key.
  </TextBlock>
  <TextBox Width="300" Height="30" Name="textBox1"
           KeyDown="OnKeyDownHandler"/>
  <TextBlock Width="300" Height="100" Name="textBlock1"/>
</StackPanel>

后端的关键事件处理程序

private void OnKeyDownHandler(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Return)
    {
       //do your things here 
    }
}

推荐阅读