将关键事件从一个窗口转发到另一个窗口

时间:2013-08-26 14:44:04

标签: wpf

我想将一个弹出窗口对象的keydown事件带到托管窗口对象。

弹出窗口可以获取对托管窗口对象的引用。

1 个答案:

答案 0 :(得分:1)

要将事件从一个UIElement传递到另一个UIElement,您可以使用RaiseEvent方法。有很多方法可以做到这一点,但这个方法相当简单。如果您想了解有关该概念的更多信息,请查看this overview on Routed Events

在弹出窗口中:

protected override void OnKeyDown(KeyEventArgs e)
{
  base.OnKeyDown(e);

  var window = // reference to hosting window

  window.RaiseEvent(e);
}

在托管窗体中:

protected override void OnKeyDown(KeyEventArgs e)
{
  base.OnKeyDown(e);

  // use the key event
}