4

无论当前焦点在哪里,我都希望在整个应用程序范围内都可以使用许多键盘快捷键。

目前我已经<Window.InputBindings>在我的主窗口的 XAML 中定义了那些。一切都很好,但是...
Ribbon 被封装为一个单独的 UserControl,并且所有快捷方式自然都与该 Ribbon 中的按钮相关。
因此,我真的不喜欢让 2 个应用程序逻辑处理分布在 2 个类中的相同功能的气味。

理想情况下,我想将 KeyBindings 定义为<Window.InputBindings>,但在 UserControl 中,而不是在窗口中。显然,这不能用 XAML 语法来完成,但只有<UserControl.InputBindings>- 唉,只有当焦点在功能区上时它们才可用(这意味着never)。

有什么建议么?

谢谢,亚历克斯

4

1 回答 1

2

在控件的构造函数或其 Loaded() 事件处理程序中,让它找到它所在的窗口(递归使用 VisualTreeHelper.GetParent(this) 直到 GetType 为 Window ...),然后添加你想要的 InputBindings窗户。

于 2011-11-27T10:24:32.947 回答