2016-06-26 10 views
0

Ich habe in meiner Window.Resource einen Style erstellt, der den Hintergrund des ausgewählten TabItems enthält. Was ich erreichen möchte eine benutzerdefinierte Höhe für den TabItem Header gesetzt ist, das ist mein Stil:Wie setze ich Header-Stil in TabItem?

<Window.Resources> 
    <ResourceDictionary> 
     <Style x:Key="CustomTabItem" TargetType="{x:Type TabItem}" BasedOn="{StaticResource MetroTabItem}"> 
      <Setter Property="Width" Value="Auto"/> 
      <Setter Property="Background" Value="Transparent" /> 
      <Setter Property="Height" Value="Auto"/> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="TabItem"> 
         <Border Name="Border" Background="Transparent"> 

          <ContentPresenter x:Name="ContentSite" 
             VerticalAlignment="Center" 
             HorizontalAlignment="Left" 
             ContentSource="Header" 
             Margin="10,3"> 
          </ContentPresenter> 
         </Border> 

         <ControlTemplate.Triggers> 
          <Trigger Property="IsMouseOver" Value="True" SourceName="Border"> 
           <Setter TargetName="Border" Property="Background" Value="Gainsboro" /> 
          </Trigger> 
          <Trigger Property="IsSelected" Value="True"> 
           <Setter TargetName="Border" Property="Background" Value="#FFC5C5C5" /> 
          </Trigger> 
         </ControlTemplate.Triggers> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 
    </ResourceDictionary> 
</Window.Resources> 

in der Regel füge ich den Stil meiner TabControl etwa so:

<TabItem Tag="Tab1" Style="{StaticResource CustomTabItem}"> 

ich den Header nur festlegen möchten Höhe für alle TabControls, die den CustomTabItem Stil haben, irgendeinen Vorschlag?

+0

Sie können die Höhe der Grenze gesetzt .... –

Antwort

1

Sie machen eine Verwirrung zwischen TabControl und TabItem.

Ein TabControl hat viele TabItems.

Jeder TabItem ist eigentlich ein Tab.

So sind die Lösungen:

1 gesetztes Style für alle TabItems aller TabControls

Eine sehr einfache Art und Weise den Stil anzuwenden ist, die x zu entfernen: Key-Attribut des TabItem Stil und der Stil wird für alle Register eines TabControl

01 auf alle TabItems

<!-- No x:Key="CustomTabItem" below --> 
<Style TargetType="{x:Type TabItem}" BasedOn="{StaticResource MetroTabItem}"> 

2 Set Stil anwenden

<TabControl ItemContainerStyle="{DynamicResource TabItemStyle1}" > <TabItem Header="Hello">Hello content</TabItem> <TabItem Header="Goodye">Goodbye content</TabItem> </TabControl> 

3 Set Art pro TabItem

<TabControl> 
    <TabItem Style="{StaticResource CustomTabItem}" Header="Hello">Hello content</TabItem> 
    <TabItem Header="Goodye">Goodbye content</TabItem> 
</TabControl> 

Grüße