在WPF中捕获应用程序级别的keyup事件

时间:2010-04-22 11:12:51

标签: wpf user-controls key children

您好我有一个内置wpf的应用程序。

在基础级别,我有一个usercontrol,并且在该usercontrol上有许多组件。

我希望能够在我的usercontrol上捕获按键事件,即使焦点在其中一个孩子上也是如此。使用PreviewKeyUp似乎没有办法。

谢谢, 太

1 个答案:

答案 0 :(得分:0)

也许我没有完全理解你的问题,但是如果你没有设置要处理的keydown事件,它应该会升级到层次结构。

public UserControl1()
          {
               InitializeComponent();
               this.KeyDown += new KeyEventHandler(UserControl1_KeyDown);
               textBox1.KeyDown += new KeyEventHandler(textBox1_KeyDown);
          }

          void textBox1_KeyDown(object sender, KeyEventArgs e)
          {
               Console.WriteLine("txt keydown: "+e.Key.ToString());
          }

          void UserControl1_KeyDown(object sender, KeyEventArgs e)
          {
               Console.WriteLine(e.Key.ToString());
          }

输出:

txt keydown: Y
Y