C#WPF:如何在主窗口中保持键盘焦点?

时间:2015-08-15 19:41:10

标签: c# wpf listview keyboard focus

我正在研究一个简单的图像查看器。 它包含一个显示当前图像的视图框。 下面我在listview中添加了一个由wrappanel创建的缩略图条,它再次包含了查看框中的缩略图。

我能够通过按键事件切换当前图像(代码示例"空格",在真实空间和箭头键中)。通过单击其中一个拇指,还可以更新当前图像。

不幸的是,每当我在Listview中选择一个拇指时,Mainwindow就会失去键盘焦点,我无法再使用这些键来切换图像。

我尝试了在网上找到的所有解决方案,但没有真正有用,现在我完全迷失了。

任何想法。

     ...

<Window.CommandBindings>
    <CommandBinding Command="{x:Static local:MainWindow.command1}" CanExecute="command1CanExecute" Executed="handlecommand1"/>
</Window.CommandBindings>
<Window.InputBindings>
    <KeyBinding Command="{x:Static local:MainWindow.command1}"  Key="Space" />
</Window.InputBindings>

...

<DockPanel>
   <ListView x:Name="ThumbSlider"  ... Some Settings ... Focusable="False" MouseUp="ListboxMouseUp">
 <ListView.Resources>
                            <Style TargetType="ListViewItem">
                                <Setter Property="Focusable" Value="False"/>
                            </Style>
                        </ListView.Resources>
  <ListView.ItemTemplate>
           <DataTemplate>
               <Viewbox  ... Some Settings ... ScrollViewer.VerticalScrollBarVisibility="Disabled" Height="120" Width="120" Focusable="False">
                   <Image Source="{Binding Path=ThumbImage}"></Image>
               </Viewbox>
           </DataTemplate>
       </ListView.ItemTemplate>
       <ListBox.ItemsPanel>
           <ItemsPanelTemplate>
               <WrapPanel IsItemsHost="True" Orientation="Horizontal"/>
           </ItemsPanelTemplate>
       </ListBox.ItemsPanel>
   </ListView>      
   <Viewbox x:Name="CurrentImageBox" DockPanel.Dock="Top" >
       <Image Source="{Binding Path=CurrentImage}"/>
   </Viewbox>

   ...

</DockPanel>

0 个答案:

没有答案