C# 将密钥事件路由到其他控件

C# 将密钥事件路由到其他控件,c#,wpf,events,event-handling,C#,Wpf,Events,Event Handling,是否有任何标准方法将所有关键事件从控件A路由到其他控件B?我希望键盘的焦点仍然集中在A上,但是A的事件处理程序将触发B的所有事件处理程序来处理按键事件 edit:澄清:调用我为B编写的特定事件处理程序是不够的。我需要模拟实际事件。例如,我希望如果一个键被发送到文本框,它将被写入文本框。下面给出的解决方案不能做到这一点(更不用说,如果在B中添加新的事件处理程序,它将完全失败) 我知道WPF区分逻辑焦点和键盘焦点,但我需要两个焦点都保持在控件A,但在某些情况下,会将其传入事件路由到其他控件。您不能这

是否有任何标准方法将所有关键事件从控件
A
路由到其他控件
B
?我希望键盘的焦点仍然集中在
A
上,但是
A
的事件处理程序将触发
B
的所有事件处理程序来处理按键事件

edit:澄清:调用我为
B
编写的特定事件处理程序是不够的。我需要模拟实际事件。例如,我希望如果一个键被发送到
文本框
,它将被写入
文本框
。下面给出的解决方案不能做到这一点(更不用说,如果在
B
中添加新的事件处理程序,它将完全失败)


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

您不能这样做吗

  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
  }

编辑:修改代码以使用
RaiseEvent()
方法以编程方式引发特定事件,而不是仅调用
按钮2的事件处理程序

难道您不能让控件a的键事件进行一些检查,并在需要时调用控件B的键事件吗?否!这不会触发事件,它只调用一个特定的函数,该函数曾经与按钮的点击事件关联。我想模拟WPF发送的实际事件。@Elazar-请参阅我的编辑。
RaiseEvent()
方法会起作用吗?不会!这不会触发事件,它只调用一个特定的函数,该函数曾经与按钮的点击事件关联。我想模拟WPF发送的实际事件。这就是我要寻找的!我想知道为什么这叫募捐活动。我搜索了fire事件、invoke事件和trigger事件,但没有结果。。。