未将键盘焦点赋予区域

时间:2015-06-11 13:11:23

标签: c# wpf prism

我有一个使用棱镜和mvvm灯的项目。我有一个shell定义了两个区域,左区域和主区域。

左侧区域填充了用户控件,它有一个包含两列的数据网格。

主区域是一个用户控件,其内部有一个项目控件,用于在画布上显示多行。它还有一个空白数据网格,稍后将使用。

我要做的是在画布上使用键盘焦点,这样我就可以使用ctrl + click系统选择多行。我添加了以下内容:

 <Canvas x:Name="canvas">
                        <Canvas.Background>
                            <SolidColorBrush Color="White" Opacity="100"/>
                        </Canvas.Background>
                        <i:Interaction.Triggers>
                            <i:EventTrigger EventName="KeyDown">
                                <cmd:EventToCommand Command="{Binding KeyDownCommand}" PassEventArgsToCommand="True"/>
                            </i:EventTrigger>
                            ...
                        </i:Interaction.Triggers>
</canvas>

问题是画布没有给予键盘焦点。当我尝试按Tab键时,左侧区域中的数据网格更改单元格是我如何知道这一点。有没有办法在鼠标位于其区域时让画布键盘聚焦?

1 个答案:

答案 0 :(得分:0)

Canvas的{​​{3}}属性的默认值为false。您应该将此属性设置为true

<Canvas x:Name="canvas" Focusable="True">
    <!-- your xaml here -->
</Canvas>