我想将 keydown 事件从弹出窗口对象带到托管窗口对象。
弹出窗口能够获得对宿主窗口对象的引用。
要将事件从一个 UIElement 传递到另一个,您可以使用该RaiseEvent
方法。有很多方法可以做到这一点,但这个相当简单。如果您想了解有关此概念的更多信息,请查看有关 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
}