我的问题可能听起来很奇怪,但基本上我想在应用程序级别提供一个命令(ZoomCommand)。但是,当我在控件的输入绑定中设置它时,如下所示:
<UserControl>
<UserControl.InputBindings>
<KeyBinding
Command="{x:Static ViewModels:GraphViewerViewModel.ZoomToFitCommand}"
Key="F"
/>
</UserControl.InputBindings>
<Searchbox />
<OtherControl />
<OtherControl />
<OtherControl />
</UserControl>
我的搜索框停止正常工作。当我在搜索框中键入时,命令在按下热键时发生。我希望在搜索框具有键盘焦点时不会发生命令。实际上我很惊讶即使子控件具有键盘焦点,控制级别的键上的绑定也会发生。有没有办法解决?
我只是希望在控件的大多数部分具有焦点时进行输入绑定,但是当搜索框具有键盘焦点时却不会发生输入绑定?
或者我必须手动将输入绑定放在搜索框以外的每个控件上,就像我做的那样:
<UserControl>
<Searchbox />
<OtherControl>
<OtherControl.InputBindings>
<KeyBinding
Command="{x:Static ViewModels:GraphViewerViewModel.ZoomToFitCommand}"
Key="F"
/>
</OtherControl.InputBindings>
</OtherControl>
<OtherControl>
<OtherControl.InputBindings>
<KeyBinding
Command="{x:Static ViewModels:GraphViewerViewModel.ZoomToFitCommand}"
Key="F"
/>
</OtherControl.InputBindings>
</OtherControl>
<OtherControl>
<OtherControl.InputBindings>
<KeyBinding
Command="{x:Static ViewModels:GraphViewerViewModel.ZoomToFitCommand}"
Key="F"
/>
</OtherControl.InputBindings>
</OtherControl>
</UserControl>