MenuShowDelay - 也适用于键盘?

MenuShowDelay - also for keyboard?

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

我是否缺少实现此目的的设置? 如果没有任何建议,请问如何让它工作?

谢谢。

编辑 - 嗯,也许我不清楚 - 目前鼠标悬停功能正常 - 当我将鼠标悬停在主上下文菜单的子菜单上时,它们会打开。当菜单项从键盘获得焦点时,我正在尝试实现类似的事情。

处理 GotKeyboardFocus 并将 IsSubmenuOpen 设置为 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);
            }
    }