wpf - 没有菜单的菜单项

标签 wpf xaml menu menuitem

是否可以在菜单项中显示菜单项而不将其分组到菜单中?

<MenuItem Header="toto">
    <MenuItem Header="Titi"></MenuItem>
</MenuItem>

此示例显示菜单项 toto,扩展器图像,但当鼠标悬停在 toto 项上时不显示子项

有什么想法吗?

最佳答案

一个解决方案: XAML

<MenuItem x:Name="MyMenu" MouseEnter="MenuItem_MouseEnter" MouseLeave="MenuItem_MouseLeave" Header="toto" >
    <MenuItem Header="titi"/>
</MenuItem>

代码隐藏:

private void MenuItem_MouseEnter(object sender, System.Windows.Input.MouseEventArgs e)
{
    this.MyMenu.IsSubmenuOpen = true;
}

private void MenuItem_MouseLeave(object sender, System.Windows.Input.MouseEventArgs e)
{
    this.MyMenu.IsSubmenuOpen = false;
}

使用 XAML(感谢 HB 的建议,第一次编辑):

<MenuItem.Style>
            <Style TargetType="MenuItem">
                <Style.Triggers>
                    <Trigger Property="IsHighlighted" Value="True">
                        <Setter Property="IsSubmenuOpen" Value="True"/>
                    </Trigger>
                    <Trigger Property="IsMouseOver" Value="False">
                        <Setter Property="IsSubmenuOpen" Value="False"/>
                    </Trigger>
                </Style.Triggers>
            </Style>
        </MenuItem.Style>

不能使用 IsHighlighted false,因为当鼠标不在它上面时它仍然突出显示。 第二次编辑:当菜单打开时显示 showdialog 窗口时似乎存在错误。所以我们需要结合 MouseEnter 事件来防止这个错误。 (错误是在显示弹出窗口后子菜单不再打开)

关于wpf - 没有菜单的菜单项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9496763/

相关文章:

wpf - 如何恢复工具栏上复选框的默认样式?

c++ - UWP ListView 占用的高度超过可用高度

c# - 如何在 WPF 中将字符串从用户控件传递到其父窗口?

wpf - 如何清除插件项目中的 WPF/XAML 类型缓存

javascript - 当我调整窗口大小并执行另一个操作时,阻止脚本发生

安卓彩色菜单图标

css - 通过编辑 CSS 强制 WordPress 中的 float 菜单保持打开状态

c# - 标记扩展 'StaticResourceExtension' 需要在 IServiceProvider 中为 ProvideValue 实现 'IXamlSchemaContextProvider'

c# - ListView Group Header 无法解析绑定(bind)属性

基于引用点的 WPF 文本 block 翻译