在WPF选项卡控件中更改选项卡项位置

时间:2013-01-27 08:17:53

标签: c# .net wpf tabcontrol

我想更改WPF TabControl中的TabItems位置。 我知道有一个属性“标签条位置”但这个只让我“顶部”,“左侧”,“右侧”,“底部”选项。 我想将标签条放在标签控件的顶部,如下所示:

 -----------------------------------
 |                                 |
 |   TabItem1       TabItem2       |
 |                                 |
 |                                 |
 |                                 |

但我找不到怎么做。

TabItems仍然需要在不同的内容之间切换。

谢谢,

1 个答案:

答案 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中,你就可以了。它给了我这个样子(希望这是你想要的) -

enter image description here