C# 键盘焦点未指定给区域
我有一个使用棱镜和mvvm灯光的项目。我有一个shell,它定义了两个区域,左区域和主区域 左侧区域填充了一个用户控件,它有一个包含两列的数据网格 主区域是一个用户控件,其中包含一个items控件,用于在画布上显示多行。它还有一个空白的数据网格,稍后将使用 我想做的是将键盘焦点放在画布上,这样我就可以使用ctrl+单击系统选择多行。我补充了以下内容:C# 键盘焦点未指定给区域,c#,wpf,prism,C#,Wpf,Prism,我有一个使用棱镜和mvvm灯光的项目。我有一个shell,它定义了两个区域,左区域和主区域 左侧区域填充了一个用户控件,它有一个包含两列的数据网格 主区域是一个用户控件,其中包含一个items控件,用于在画布上显示多行。它还有一个空白的数据网格,稍后将使用 我想做的是将键盘焦点放在画布上,这样我就可以使用ctrl+单击系统选择多行。我补充了以下内容: <Canvas x:Name="canvas"> <Canvas.Backgr
<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键时,左侧区域中的数据网格将更改单元格,这就是我如何知道的。当鼠标位于画布的区域时,有什么方法可以使画布键盘聚焦?画布的属性的默认值为false
。您应该将此属性设置为true
:
<Canvas x:Name="canvas" Focusable="True">
<!-- your xaml here -->
</Canvas>
我的第一个猜测是尝试将焦点设置在Canvas MouseEnter事件上。