我想更改WPF TabControl中的TabItems位置。 我知道有一个属性“标签条位置”但这个只让我“顶部”,“左侧”,“右侧”,“底部”选项。 我想将标签条放在标签控件的顶部,如下所示:
-----------------------------------
| |
| TabItem1 TabItem2 |
| |
| |
| |
但我找不到怎么做。
TabItems仍然需要在不同的内容之间切换。
谢谢,
答案 0 :(得分:2)
这可以通过覆盖tabControl的默认模板来实现,您可以从here获取该模板。
我根据您的需要修改了模板的位 -
<Style TargetType="{x:Type TabControl}"
BasedOn="{StaticResource {x:Type TabControl}}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabControl}">
<Grid KeyboardNavigation.TabNavigation="Local">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Border Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"
Grid.Row="0"
BorderThickness="1">
<TabPanel x:Name="HeaderPanel"
IsItemsHost="True"
Margin="0,10,0,0"
Panel.ZIndex="1"
KeyboardNavigation.TabIndex="1"
Background="Transparent" />
</Border>
<Border x:Name="Border"
Grid.Row="1"
BorderThickness="1"
KeyboardNavigation.TabNavigation="Local"
KeyboardNavigation.DirectionalNavigation="Contained"
KeyboardNavigation.TabIndex="2"
Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}">
<ContentPresenter x:Name="PART_SelectedContentHost"
Margin="4"
ContentSource="SelectedContent" />
</Border>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
将此样式放在Window Resources中,你就可以了。它给了我这个样子(希望这是你想要的) -