是否有任何标准方法可以将所有关键事件从控件A
路由到其他控件B
?我希望键盘焦点仍然在A
上,但A
的事件处理程序会触发B
的所有事件处理程序来处理关键事件。
编辑澄清:调用我为B
编写的特定事件处理程序是不够的。我需要模仿实际的事件。例如,我希望如果将密钥发送到TextBox
,则会将其写入TextBox
。下面给出的解决方案不会这样做(更不用说如果将新的事件处理程序添加到B
它完全失败了这一事实。)
我知道WPF区分逻辑焦点和键盘焦点,但我需要两个焦点保持控制A
,但在某些情况下将其传入事件路由到其他控件。
答案 0 :(得分:4)
你不能做这样的事吗?
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()
方法以编程方式引发特定事件,而不是仅调用button2
的事件处理程序。