如何向wpf选项卡项添加上下文菜单,该菜单仅在单击选项卡项标题时显示,而不是内容?我还需要在.cs中动态地创建tabitems,所以在.xml中静态地创建它是行不通的。
我已经尝试将上下文菜单添加到tabitem.header中,但它有一些问题,如果我有[表项1][表项2][标签标签标签标签]
[tabitem2]被拉伸以匹配tabcontrol的宽度。任何帮助都将不胜感激。
谢谢!
请参阅此问题,了解如何以编程方式进行操作。诀窍是在您设置为标题内容的任何控件上设置ContextMenu。如果您只是使用标头来设置一个简单的字符串值,那么这是行不通的。至少您需要创建一个TextBlock或ContentControl之类的东西。
对于那些对如何通过XAML(特别是在使用MVVM模式时)进行操作感兴趣的人:
在TabControl的ItemContainerStyle上设置ContextMenu。然后它将只适用于实际的选项卡部分(标题),而不适用于选项卡内容。您可以在MenuItems上使用绑定等来获得基于特定选项卡的各种行为,前提是您的选项卡使用的是ViewModel。。
<TabControl>
<TabControl.ItemContainerStyle>
<Style TargetType="{x:Type TabItem}">
<Setter Property="ContextMenu">
<Setter.Value>
<ContextMenu/> <!-- Define it here! -->
</Setter.Value>
</Setter>
</Style>
</TabControl.ItemContainerStyle>
</TabControl>