2011-06-10 119 views
4

如何添加一個上下文菜單到wpf tabitem,只有當我點擊tabitem標題而不是內容時纔會出現? 我還需要在.cs中動態創建Tabitems,因此在.xaml中靜態地執行此操作將不起作用。wpf tabitem標題上下文菜單

我已經嘗試添加上下文菜單tabitem.header但它也存在一些問題,其中,如果我有 [TabItem的1] [tabitem2] [tabitemtabitemtabitemta]

[tabitem2]被拉伸以匹配的寬度TabControl的。 任何幫助,將不勝感激。

謝謝!

回答

6

請參閱this question瞭解如何以編程方式執行此操作。訣竅是將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>