将键事件路由到其他控件

Ela*_*ich 8 c# wpf events event-handling

是否有任何标准方法将所有Key事件从控件路由A到其他控件B?我希望键盘焦点仍然可用,A但是事件处理程序A会触发B关键事件的所有事件处理程序.

编辑:澄清:调用我写的特定事件处理程序B是不够的.我需要模仿实际的事件.所以例如我希望如果一个密钥被发送到a TextBox,它将被写入TextBox.下面给出的解决方案不会这样做(更不用说如果新的事件处理程序添加到B它完全失败的事实).

我知道WPF区分逻辑焦点和键盘焦点,但我需要两个焦点保持控制A,但在某些情况下将其传入事件路由到其他控件.

Don*_*nut 5

你不能做这样的事情吗?

  private void button1_Click(object sender, RoutedEventArgs e)
  {
     // Check if the event needs to be passed to button2's handler
     if (conditionIsMet)
     {
        // Send the event to button2
        button2.RaiseEvent(e);
     }
     else
     {
        // button1's "Click" code
     }
  }

  private void button2_Click(object sender, RoutedEventArgs e)
  {
     // button2's "Click" code
  }
Run Code Online (Sandbox Code Playgroud)

编辑:修改代码以使用该RaiseEvent()方法以编程方式引发特定事件,而不仅仅是调用button2.