MenuShowDelay - 也适用于键盘?

时间:2017-04-13 11:05:05

标签: c# .net wpf contextmenu

我正在创建一个上下文,并且我试图将项目自动显示为当您将鼠标悬停在鼠标上时显示的内容。

我错过了设置来实现这一目标吗? 如果没有任何建议如何使其工作,请?

感谢。

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

1 个答案:

答案 0 :(得分:0)

处理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);
            }
    }