当用户点击快捷键(通过将其 IsOpen 属性更改为 true)时,我正在打开一个 ContextMenu。但是当它打开时,没有选择任何项目。如何选择第一个项目,以便用户不必按向下箭头即可到达它?
问问题
1372 次
2 回答
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();
}
于 2013-05-28T16:18:44.507 回答
0
我不确定您打算选择哪个控件(Datagrid、ListView 或其他)。但是,您需要检查的第一件事是您的控件是否支持 KeyPress
事件。如果支持,则尝试附加处理程序KeyPress
并编写逻辑以检查所需的键并相应地选择项目。
您可以在此处查看一个示例,该示例具有如何根据 Enter 键选择数据网格单元格/行的实现。
于 2013-05-28T15:10:46.917 回答