如何在ContextMenu中为MenuItem提供工具提示,只有当鼠标位于实际的MenuItem而不是其弹出子菜单上时才会出现?最好不必为子菜单中的每个项目设置属性或样式。
<Button Content="Push">
<Button.ContextMenu>
<ContextMenu>
<MenuItem ToolTip="ToolTip" Header="Want ToolTip Here" ToolTipService.InitialShowDelay="5000">
<MenuItem Header="Do Not Want ToolTip Here"/>
<MenuItem Header="Or Here"/>
<MenuItem Header="Or Here"/>
</MenuItem>
</ContextMenu>
</Button.ContextMenu>
</Button>
以下是该问题的屏幕截图:如果我右键单击该按钮,打开子菜单并将鼠标移动到其中一个子项,我将鼠标移到主菜单项后5秒仍显示工具提示
答案 0 :(得分:0)
只需在下面的事件处理程序中注册ToolTipOpening
事件。
private void MenuItem_ToolTipOpening(object sender, ToolTipEventArgs e)
{
FrameworkElement element = (FrameworkElement)sender;
Point p = Mouse.GetPosition(element);
if (p.X < 0 || p.X > element.ActualWidth || p.Y < 0 || p.Y > element.ActualHeight)
{
e.Handled = true;
}
}