1

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

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

但我找不到怎么做。

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

谢谢,

4

1 回答 1

2

这可以通过覆盖您可以从此处获取的 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>

把这种风格放在你的窗口资源中,你就可以开始了。它给了我这个外观(希望这是你想要的) -

在此处输入图像描述

于 2013-01-27T14:48:58.380 回答