我有一个使用棱镜和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键时,左侧区域中的数据网格更改单元格是我如何知道这一点。有没有办法在鼠标位于其区域时让画布键盘聚焦?
答案 0 :(得分:0)
Canvas
的{{3}}属性的默认值为false
。您应该将此属性设置为true
:
<Canvas x:Name="canvas" Focusable="True">
<!-- your xaml here -->
</Canvas>