我正在尝试向上下文菜单添加标题。下面的 xaml 几乎可以满足我的需求。问题是用户可以选择 TextBlock,如果他们单击 TextBlock,菜单就会消失。(如果用户单击分隔符,菜单仍然存在。)所以基本上我希望如果用户将鼠标移到它上面时不会突出显示 TextBlock,并且我也不希望菜单在用户单击 TextBlock 时消失。
<TextBlock.ContextMenu>
<ContextMenu>
<TextBlock Text="Test!!!" />
<Separator></Separator>
<MenuItem Header="menu item1" />
<MenuItem Header="menu item2" />
</ContextMenu>
</TextBlock.ContextMenu>
Run Code Online (Sandbox Code Playgroud)
您可以在分隔符上使用自定义模板来实现您想要的
<TextBlock.ContextMenu>
<ContextMenu>
<Separator>
<Separator.Template>
<ControlTemplate TargetType="Separator">
<StackPanel>
<TextBlock Text="Test!!!" />
<Separator/>
</StackPanel>
</ControlTemplate>
</Separator.Template>
</Separator>
<MenuItem Header="menu item1" />
<MenuItem Header="menu item2" />
</ContextMenu>
</TextBlock.ContextMenu>
Run Code Online (Sandbox Code Playgroud)
这样文本就不会响应点击或悬停并保持菜单打开,而且如果您将模板转换为资源,您可以重复使用。