2016-11-19 2 views
0

Ich versuche, die Laschen die gleiche Farbe zu machen, unabhängig davon, ob es ausgewählt ist oder nicht, habe ich ausgelöst und die Farbe festgelegt, aber es tut zu sein scheinen arbeiten:Ändern der ausgewählten Registerkarte Farbe WPF C#

<Window.Resources> 
    <SolidColorBrush x:Key="TabItem.Selected.Background" Color="#424E5A"/> 
    <SolidColorBrush x:Key="TabItem.Selected.Border" Color="#424E5A"/> 
    <Style x:Key="TabControlStyle1" TargetType="{x:Type TabControl}"> 
     <Setter Property="Padding" Value="2"/> 
     <Setter Property="HorizontalContentAlignment" Value="Center"/> 
     <Setter Property="VerticalContentAlignment" Value="Center"/> 
     <Setter Property="Background" Value="{StaticResource TabItem.Selected.Background}"/> 
     <Setter Property="BorderBrush" Value="{StaticResource TabItem.Selected.Border}"/> 
     <Setter Property="BorderThickness" Value="1"/> 
     <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type TabControl}"> 
        <Grid x:Name="templateRoot" 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> 
         <TabPanel x:Name="headerPanel" Background="#424E5A" Grid.Column="0" IsItemsHost="true" Margin="2,2,2,0" Grid.Row="0" KeyboardNavigation.TabIndex="1" Panel.ZIndex="1"/> 
         <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="TextElement.Foreground" TargetName="templateRoot" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/> 
         </Trigger> 
         <Trigger Property="IsSelected" Value="True"> 
          <Setter TargetName="templateRoot" Property="Background" Value="#424E5A" /> 
         </Trigger> 
        </ControlTemplate.Triggers> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 
</Window.Resources> 

Aber wie Sie die Farbe weiß ist zu sehen, anstatt die blueygrey der Rest meiner Tab Sidebar ist:

image wie kann ich das Problem beheben, so dass die Farbe ist immer #424E5A

Antwort

0

ich glaube, Sie in der Nähe sind, du bist ju Es fehlt, dass der Header in einem TabItem definiert ist, nicht in TabControl.

Sie suchen also nach einem anderen Stil, zusätzlich zu dem, den Sie bereits haben. Etwas wie:

<Style x:Key="TabItemStyle1" TargetType="{x:Type TabItem}"> 
    <Setter Property="HeaderTemplate"> 
     <Setter.Value> 
      <DataTemplate> 
       <Border x:Name="grid" Background="{StaticResource TabItem.Selected.Background}"> 
        <ContentPresenter> 
         <ContentPresenter.Content> 
          <TextBlock Margin="4" FontSize="15" Text="{TemplateBinding Content}"/> 
         </ContentPresenter.Content> 
        </ContentPresenter> 
       </Border> 
       <DataTemplate.Triggers> 
        <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type TabItem}},Path=IsSelected}" Value="True"> 
         <Setter TargetName="grid" Property="Background" Value="{StaticResource TabItem.Selected.Background}"/> 
        </DataTrigger> 
       </DataTemplate.Triggers> 
      </DataTemplate> 
     </Setter.Value> 
    </Setter> 

Hoffe es hilft.

Verwandte Themen