当用户点击快捷键时(通过将其IsOpen属性更改为true),我将打开ContextMenu。但是当它打开时,没有选择任何项目。如何选择第一个项目,以便用户不必按向下箭头即可到达?
答案 0 :(得分:1)
试试这个:
<ListBox>
<ListBoxItem Content="Item">
<ListBoxItem.ContextMenu>
<ContextMenu Opened="ContextMenu_Opened">
<MenuItem Click="some_event" Header="Qwerty"/>
</ContextMenu>
</ListBoxItem.ContextMenu>
</ListBoxItem>
</ListBox>
在代码隐藏中:
private void ContextMenu_Opened(object sender, RoutedEventArgs e)
{
var contextMenu = sender as ContextMenu;
(contextMenu.Items[0] as MenuItem).Focus();
}
答案 1 :(得分:0)
我不确定您打算选择哪个控件(Datagrid,ListView或其他)。但是,您需要检查的第一件事是您的控件是否支持KeyPress
事件。如果它支持,则尝试为KeyPress
附加处理程序并编写逻辑以检查所需的键并相应地选择项目。
您可以检查一个示例here,该示例具有如何根据Enter键选择数据网格单元格/行的实现。