wpf选项卡项标题上下文菜单



如何向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>

最新更新