【问题标题】:Change tab items location in WPF Tab Control更改 WPF 选项卡控件中的选项卡项位置
【发布时间】:2013-01-27 22:48:58
【问题描述】:
我想更改 WPF TabControl 中的 TabItems 位置。
我知道有一个“标签条位置”属性,但这个属性只允许我使用“顶部”、“左侧”、“右侧”、“底部”选项。
我想将标签条放在标签控件的顶部,如下所示:
-----------------------------------
| |
| TabItem1 TabItem2 |
| |
| |
| |
但我找不到怎么做。
TabItems 仍然需要在不同的内容之间切换。
谢谢,
【问题讨论】:
标签:
c#
.net
wpf
tabcontrol
【解决方案1】:
这可以通过覆盖你可以从here获得的tabControl的默认模板来实现。
我根据您的需要修改了一些模板-
<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>
将此样式放入您的窗口资源中,您就可以开始使用了。它给了我这个外观(希望这是你想要的)-