共用方式為


HOW TO:建立具有 ContextMenu 的 TabControl

更新:2007 年 11 月

本主題描述如何建立 TabControl,並將 ContextMenu 附加到每個 TabItem。當使用者按一下 ContextMenu 中的項目時,TabItem 必須處理 Click 事件。您可以將處理常式加入到 ContextMenu 項目,但您必須知道 ContextMenu 項目的目標是什麼,才能採用適當的動作。

下列範例顯示如何執行這項工作。第一個範例會建立 TabItem,並將 ContextMenu 附加到 TabItem

範例

<TabItem Name="backgroundcolor" Header="Choose a Background Color"> 
<TabItem.ContextMenu>
<ContextMenu MenuItem.Click="MyMenuHandler">
     <MenuItem Header="Red" Name="red"/>
     <MenuItem Header="Blue" Name="blue"/>
     <MenuItem Header="Yellow" Name="yellow"/>
</ContextMenu>
</TabItem.ContextMenu>
<TabItem.Content>Some content about background colors.</TabItem.Content>
</TabItem>

第二個範例顯示如何建立處理常式,以處理 Click 事件呼叫。

void MyMenuHandler(object sender, RoutedEventArgs e)
{
ContextMenu cm = (ContextMenu)sender;
target = cm.PlacementTarget;
if(e.Source==red)
  {
   backgroundcolor.Background = Brushes.Red;
   backgroundcolor.Header = "Background red";
  }
  else if(e.Source==blue)
  {
   backgroundcolor.Background = Brushes.LightBlue;
   backgroundcolor.Header = "Background blue";
  }
  else if(e.Source==yellow)
  {
   backgroundcolor.Background = Brushes.Yellow;
   backgroundcolor.Header = "Background yellow";
  }
 }

請注意,若要找出 ContextMenu 的目標,您可以使用前述範例的程式碼,或是下列範例。

ContextMenu cm = (ContextMenu)ContextMenu.ItemsControlFromItemContainer                   ((MenuItem)e.OriginalSource);
UIElement placementTarget = cm.PlacementTarget;

請參閱

其他資源

TabControl 範例