프로그래밍 방식으로 수행하는 방법은 this question을 참조하십시오. 트릭은 ContextMenu를 머리글 내용으로 설정 한 컨트롤에 설정하는 것입니다. 헤더를 사용하여 간단한 문자열 값을 설정하는 경우에는 작동하지 않습니다. 최소한 TextBlock 또는 ContentControl 또는 뭔가를 만들어야합니다. (특히 MVVM 패턴을 사용하는 경우) XAML을 통해 작업을 수행하는 방법에 관심있는 사람들을 위해
:
이있는 TabControl의 ItemContainerStyle에서의 ContextMenu를 설정합니다. 그러면 실제 탭 부분 (헤더)에만 적용되고 탭 내용에는 적용되지 않습니다. 탭이 ViewModel을 사용하는 경우, MenuItems에서 바인딩 등을 사용하여 특정 탭을 기반으로 다양한 동작을 얻을 수 있습니다.
<TabControl>
<TabControl.ItemContainerStyle>
<Style TargetType="{x:Type TabItem}">
<Setter Property="ContextMenu">
<Setter.Value>
<ContextMenu/> <!-- Define it here! -->
</Setter.Value>
</Setter>
</Style>
</TabControl.ItemContainerStyle>
</TabControl>