2013-07-22 30 views

回答

3

只要改变ItemsPanel

<TabControl ....> 
    <TabControl.ItemsPanel> 
    <ItemsPanelTemplate> 
     <StackPanel Orientation="Horizontal"/> 
    </ItemsPanelTemplate> 
    </TabControl.ItemsPanel> 
    .... 
</TabControl> 

编辑:

只是测试,这是行不通的。 @SimonBelanger是对的。

这里是TabControlDefault Template的副本,有轻微的改变,改变的TabPanel到水平StackPanel

<TabControl> 
     <TabControl.Template> 
      <ControlTemplate TargetType="{x:Type TabControl}"> 
       <Grid ClipToBounds="true" SnapsToDevicePixels="true" KeyboardNavigation.TabNavigation="Local"> 
        <Grid.ColumnDefinitions> 
         <ColumnDefinition x:Name="ColumnDefinition0"/> 
         <ColumnDefinition x:Name="ColumnDefinition1" Width="0"/> 
        </Grid.ColumnDefinitions> 
        <Grid.RowDefinitions> 
         <RowDefinition x:Name="RowDefinition0" Height="Auto"/> 
         <RowDefinition x:Name="RowDefinition1" Height="*"/> 
        </Grid.RowDefinitions> 
        <StackPanel x:Name="HeaderPanel" Grid.Column="0" IsItemsHost="true" Margin="2,2,2,0" Grid.Row="0" KeyboardNavigation.TabIndex="1" Panel.ZIndex="1" Orientation="Horizontal"/> 
        <Border x:Name="ContentPanel" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Grid.Column="0" KeyboardNavigation.DirectionalNavigation="Contained" Grid.Row="1" KeyboardNavigation.TabIndex="2" KeyboardNavigation.TabNavigation="Local"> 
         <ContentPresenter x:Name="PART_SelectedContentHost" ContentSource="SelectedContent" Margin="{TemplateBinding Padding}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/> 
        </Border> 
       </Grid> 
       <ControlTemplate.Triggers> 
        <Trigger Property="TabStripPlacement" Value="Bottom"> 
         <Setter Property="Grid.Row" TargetName="HeaderPanel" Value="1"/> 
         <Setter Property="Grid.Row" TargetName="ContentPanel" Value="0"/> 
         <Setter Property="Height" TargetName="RowDefinition0" Value="*"/> 
         <Setter Property="Height" TargetName="RowDefinition1" Value="Auto"/> 
         <Setter Property="Margin" TargetName="HeaderPanel" Value="2,0,2,2"/> 
        </Trigger> 
        <Trigger Property="TabStripPlacement" Value="Left"> 
         <Setter Property="Grid.Row" TargetName="HeaderPanel" Value="0"/> 
         <Setter Property="Grid.Row" TargetName="ContentPanel" Value="0"/> 
         <Setter Property="Grid.Column" TargetName="HeaderPanel" Value="0"/> 
         <Setter Property="Grid.Column" TargetName="ContentPanel" Value="1"/> 
         <Setter Property="Width" TargetName="ColumnDefinition0" Value="Auto"/> 
         <Setter Property="Width" TargetName="ColumnDefinition1" Value="*"/> 
         <Setter Property="Height" TargetName="RowDefinition0" Value="*"/> 
         <Setter Property="Height" TargetName="RowDefinition1" Value="0"/> 
         <Setter Property="Margin" TargetName="HeaderPanel" Value="2,2,0,2"/> 
        </Trigger> 
        <Trigger Property="TabStripPlacement" Value="Right"> 
         <Setter Property="Grid.Row" TargetName="HeaderPanel" Value="0"/> 
         <Setter Property="Grid.Row" TargetName="ContentPanel" Value="0"/> 
         <Setter Property="Grid.Column" TargetName="HeaderPanel" Value="1"/> 
         <Setter Property="Grid.Column" TargetName="ContentPanel" Value="0"/> 
         <Setter Property="Width" TargetName="ColumnDefinition0" Value="*"/> 
         <Setter Property="Width" TargetName="ColumnDefinition1" Value="Auto"/> 
         <Setter Property="Height" TargetName="RowDefinition0" Value="*"/> 
         <Setter Property="Height" TargetName="RowDefinition1" Value="0"/> 
         <Setter Property="Margin" TargetName="HeaderPanel" Value="0,2,2,2"/> 
        </Trigger> 
        <Trigger Property="IsEnabled" Value="false"> 
         <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/> 
        </Trigger> 
       </ControlTemplate.Triggers> 
      </ControlTemplate> 
     </TabControl.Template> 

     ...    
    </TabControl> 
+0

这并不实际工作。它会更改标签内容的面板,而不是标签标题。 –

+0

@SimonBelanger:是的,你说得对。这不是解决方案。 –

+0

@EricafterDark看我的编辑 –