WPF输入绑定优先于键盘焦点吗?

时间:2014-02-27 01:50:43

标签: c# wpf xaml

我的问题可能听起来很奇怪,但基本上我想在应用程序级别提供一个命令(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>

0 个答案:

没有答案