다음을 통해 공유


방법: ContextMenu가 있는 TabControl 만들기

업데이트: 2007년 11월

이 항목에서는 TabControl을 만들고 각 TabItemContextMenu를 연결하는 방법을 설명합니다. 사용자가 ContextMenu의 항목을 클릭하면 TabItemClick 이벤트를 처리해야 합니다. 처리기를 ContextMenu 항목에 추가할 수 있지만 적절한 동작을 수행하려면 ContextMenu 항목의 대상을 알고 있어야 합니다.

다음 예제에서는 이 작업을 수행하는 방법을 보여 줍니다. 첫 번째 예제에서는 TabItem을 만든 후 TabItemContextMenu를 연결합니다.

예제

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