是否可以在菜单项中显示菜单项而不将其分组到菜单中?
<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/