How to build vertical tab sets in WPF?
Solution 1:
Have you tried the TabControl.TabStripPlacement
Property?
The following example creates a tab control that positions the tabs on the left side.
<TabControl TabStripPlacement="Left" Margin="0, 0, 0, 10">
<TabItem Name="fontweight" Header="FontWeight">
<TabItem.Content>
<TextBlock TextWrapping="WrapWithOverflow">
FontWeight property information goes here.
</TextBlock>
</TabItem.Content>
</TabItem>
<TabItem Name="fontsize" Header="FontSize">
<TabItem.Content>
<TextBlock TextWrapping="WrapWithOverflow">
FontSize property information goes here.
</TextBlock>
</TabItem.Content>
</TabItem>
</TabControl>
Solution 2:
You should try this code:
<TabControl.Resources>
<Style TargetType="{x:Type TabItem}">
<Setter Property="HeaderTemplate">
<Setter.Value>
<DataTemplate>
<ContentPresenter Content="{TemplateBinding Content}">
<ContentPresenter.LayoutTransform>
<RotateTransform Angle="270" />
</ContentPresenter.LayoutTransform>
</ContentPresenter>
</DataTemplate>
</Setter.Value>
</Setter>
<Setter Property="Padding" Value="3" />
</Style>
</TabControl.Resources>
Solution 3:
Based on rkirac's answer above. If you don't want to create a global style, you can put the same stuff inside TabControl.ItemContainerStyle
that will only affect the TabControl
in question. Following is a simple example:
<TabControl TabStripPlacement="Left">
<TabControl.ItemContainerStyle>
<Style TargetType="TabItem">
<Setter Property="LayoutTransform">
<Setter.Value>
<RotateTransform Angle="270" />
</Setter.Value>
</Setter>
</Style>
</TabControl.ItemContainerStyle>
</TabControl>