2017-01-06 5 views
2

Ich schreibe eine WPF-Anwendung und versuchen, den TabItem-Header NUR zu gestalten, um einen Rahmen mit Hintergrundfarbe zu ändern, wenn ausgewählt. Das Problem ist, wenn ich diesen Stil hinzufüge, verwirft es den Stil für meine TextBlock-Elemente im TabItem. Ich bin kein WPF/XAML-Experte. Unten ist der Stil, den ich in meinem TabControl verwende. Ich benutze auch MahApps Metro Stylings. Irgendwelche Ideen würden geschätzt werden.WPF TabItem Header Styling ONLY

  <TabControl.Resources> 
       <Style TargetType="TabItem"> 
        <Setter Property="Template"> 
         <Setter.Value> 
          <ControlTemplate TargetType="TabItem"> 
           <Border Name="Border" BorderThickness="1,1,1,0" BorderBrush="Gainsboro" CornerRadius="4,4,0,0" Margin="2,0"> 
            <ContentPresenter x:Name="ContentSite" 
            VerticalAlignment="Center" 
            HorizontalAlignment="Center" 
            ContentSource="Header" 
            Margin="10,2"/> 
           </Border> 
           <ControlTemplate.Triggers> 
            <Trigger Property="IsSelected" Value="True"> 
             <Setter TargetName="Border" Property="Background" Value="{DynamicResource AccentColorBrush}" /> 
            </Trigger> 
           </ControlTemplate.Triggers> 
          </ControlTemplate> 
         </Setter.Value> 
        </Setter> 
       </Style> 
      </TabControl.Resources> 
+0

Sie sagen, "es vermasselt den Stil für meine TextBlock- Elemente im TabItem up". Kannst du genauer sein? Ich kann keine TextBlock-Anzeigeprobleme mit dem von Ihnen bereitgestellten XAML reproduzieren. –

+0

Mit dem Styling an Ort und Stelle macht es alle meine Textblock-Elemente einen schwarzen Vordergrund. Was funktioniert gut, wenn ich einen weißen Hintergrund benutze, aber wenn ich es auf einen schwarzen Hintergrund umschalte, können Sie die Textblock-Elemente nicht sehen, weil die schwarz bleiben, anstatt zu weiß zu wechseln, wie meine Label-Elemente. Wenn es eine Möglichkeit im Stil wäre, nur das TabItem.Header-Element und nicht das gesamte TabItem anzusprechen, würde das mein Problem lösen, aber ich glaube nicht, dass Sie das aus meinem begrenzten Wissen über XAML/WPF heraus tun können. – Developer

+0

Es gibt nichts in diesem XAML, das die Vordergrundfarbe eines anderen ändern könnte. Haben Sie versucht, 'BasedOn' für' Style' zu ​​setzen? '