Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使WPF ContextMenu在启用时自动选择第一项';它开门了吗?_C#_Wpf_Contextmenu - Fatal编程技术网

C# 如何使WPF ContextMenu在启用时自动选择第一项';它开门了吗?

C# 如何使WPF ContextMenu在启用时自动选择第一项';它开门了吗?,c#,wpf,contextmenu,C#,Wpf,Contextmenu,当用户点击快捷键(通过将其IsOpen属性更改为true)时,我正在打开一个ContextMenu。但当它打开时,不会选择任何项目。如何选择第一个项目,以便用户不必按下向下箭头即可到达它?我不确定您要选择哪个控件(Datagrid、ListView或其他控件)。但是,您需要检查的第一件事是您的控件是否支持KeyPress事件。如果支持,则尝试为按键附加处理程序,并编写逻辑以检查所需的键并相应地选择项 您可以查看一个示例,其中包含如何基于Enter键选择数据网格单元格/行的实现。尝试以下操作: &

当用户点击快捷键(通过将其IsOpen属性更改为true)时,我正在打开一个ContextMenu。但当它打开时,不会选择任何项目。如何选择第一个项目,以便用户不必按下向下箭头即可到达它?

我不确定您要选择哪个控件(Datagrid、ListView或其他控件)。但是,您需要检查的第一件事是您的控件是否支持
KeyPress
事件。如果支持,则尝试为
按键
附加处理程序,并编写逻辑以检查所需的键并相应地选择项

您可以查看一个示例,其中包含如何基于Enter键选择数据网格单元格/行的实现。

尝试以下操作:

<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();
}