Comment créer des jeux d'onglets verticaux dans WPF? Les onglets s'empilent de haut en bas, tout comme les "Propriétés" d'un projet affiché dans Visual Studio.
Avez-vous essayé le TabControl.TabStripPlacement
Propriété ?
L'exemple suivant crée un contrôle onglet qui positionne les onglets sur le côté gauche.
<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>
Vous devriez essayer ce 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>
Basé sur la réponse de rkirac ci-dessus. Si vous ne voulez pas créer un style global, vous pouvez mettre les mêmes choses à l'intérieur TabControl.ItemContainerStyle
qui n'affectera que le TabControl
en question. Voici un exemple simple:
<TabControl TabStripPlacement="Left">
<TabControl.ItemContainerStyle>
<Style TargetType="TabItem">
<Setter Property="LayoutTransform">
<Setter.Value>
<RotateTransform Angle="270" />
</Setter.Value>
</Setter>
</Style>
</TabControl.ItemContainerStyle>
</TabControl>