54

How to build vertical tab sets in WPF? The tabs will stack up in top-to-bottom just like the "Properties" of a project shown in visual studio.

Gulshan
  • 3,611
  • 5
  • 35
  • 46

3 Answers3

100

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>
ChrisF
  • 134,786
  • 31
  • 255
  • 325
15

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>
B.K.
  • 9,982
  • 10
  • 73
  • 105
rkirac
  • 161
  • 1
  • 4
6

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>
dotNET
  • 33,414
  • 24
  • 162
  • 251