我有一个带有几个窗口的WPF应用程序.我想定义GLOBAL inputBindings.
要定义LOCAL inputbindings,我只需在Window.InputBindings或UserControl.InputBindings中声明输入.
要定义GLOBAL,我希望我可以对Application类做同样的事情......
<Application
....>
<Application.InputBindings>
...
</Application.InputBindings>
Run Code Online (Sandbox Code Playgroud)
如果我在2个不同的窗口中有相同的绑定,我必须编码两次.这不符合DRY的理念,我猜有更好的方法......
编辑:在他的回答中,Kent Boogaart建议我使用Style.不幸的是,我无法弄清楚如何定义它.这是代码:
<Application.Resources>
<Style TargetType="Window">
<Setter Property="InputBindings">
<Setter.Value>
<Window.InputBindings>
<KeyBinding KeyGesture="Ctrl+M" Command="local:App.MsgCommand />
</Window.InputBindings>
</Setter.Value>
</Setter>
</Style>
</Application.Resources>
Run Code Online (Sandbox Code Playgroud)
它引发了一个错误:错误MC3080:无法设置Property Setter'InputBindings',因为它没有可访问的set访问器.
我的风格错了吗?还有其他解决方案吗?
有任何想法吗?谢谢!