Freigeben über


Gewusst wie: Erstellen eines "TabControl"-Elements mit "ContextMenus"

Aktualisiert: November 2007

In diesem Thema wird erläutert, wie Sie ein TabControl-Element erstellen und ein ContextMenu an die einzelnen TabItem-Elemente anfügen. Wenn ein Benutzer im ContextMenu auf ein Element klickt, muss das TabItem-Element das Click-Ereignis behandeln. Sie können den Handler den ContextMenu-Elementen hinzufügen, aber Sie müssen das Ziel des ContextMenu-Elements kennen, damit die richtige Aktion ausgeführt werden kann.

Das folgende Beispiel zeigt, wie Sie dies durchführen: Im ersten Beispiel wird ein TabItem erstellt und ein ContextMenu an das TabItem angefügt.

Beispiel

<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>

Das zweite Beispiel zeigt, wie Sie einen Handler erstellen, der die Aufrufe des Click-Ereignisses behandelt.

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";
  }
 }

Beachten Sie, dass Sie zum Suchen nach dem ContextMenu-Ziel den Code im vorherigen oder im folgenden Beispiel verwenden können.

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

Siehe auch

Weitere Ressourcen

TabControl-Beispiele