Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.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# MenuShowDelay-也适用于键盘?_C#_.net_Wpf_Contextmenu - Fatal编程技术网

C# MenuShowDelay-也适用于键盘?

C# MenuShowDelay-也适用于键盘?,c#,.net,wpf,contextmenu,C#,.net,Wpf,Contextmenu,我正在创建一个上下文,我正在尝试让项目的子菜单自动显示,就像你用鼠标悬停在上面时一样 我是否错过了实现这一点的环境? 如果没有任何建议如何使其工作,请 谢谢 编辑-嗯,可能我不清楚-当前鼠标悬停功能正常-当我用鼠标悬停在主关联菜单上时,主关联菜单的子菜单打开。当菜单项从键盘获得焦点时,我试图实现类似的效果。处理GotKeyboardFocus并将IsubMenuOpen设置为true。下面是一个示例,您可以基于它进行行为 <TextBox Text="test"> <T

我正在创建一个上下文,我正在尝试让项目的子菜单自动显示,就像你用鼠标悬停在上面时一样

我是否错过了实现这一点的环境? 如果没有任何建议如何使其工作,请

谢谢


编辑-嗯,可能我不清楚-当前鼠标悬停功能正常-当我用鼠标悬停在主关联菜单上时,主关联菜单的子菜单打开。当菜单项从键盘获得焦点时,我试图实现类似的效果。

处理
GotKeyboardFocus
并将
IsubMenuOpen
设置为
true
。下面是一个示例,您可以基于它进行行为

<TextBox Text="test">
    <TextBox.ContextMenu>
        <ContextMenu>
            <MenuItem Header="111"></MenuItem>
            <MenuItem Header="222"></MenuItem>
            <MenuItem Header="333" GotKeyboardFocus="MenuItem_GotKeyboardFocus">
                <MenuItem Header="fff" />
                <MenuItem Header="ggg" />
            </MenuItem>
            <MenuItem Header="444"></MenuItem>
        </ContextMenu>
    </TextBox.ContextMenu>
</TextBox>

    private void MenuItem_GotKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
    {
if ((sender as MenuItem) != null)
            {
                Dispatcher.BeginInvoke((Action)(() => { (sender as MenuItem).IsSubmenuOpen = true; }), null);
            }
    }

private void MenuItem_GotKeyboardFocus(对象发送器,KeyboardFocusChangedEventArgs e)
{
if((发送方作为MenuItem)!=null)
{
Dispatcher.BeginInvoke((操作)(()=>{(发送方作为MenuItem.IsSubmenuOpen=true;}),null);
}
}

为什么需要使用BeginInvoke?如果没有,我会遇到左箭头和子菜单中的escape的问题。