2016-10-11 81 views
1

我想在选择TabItem时更改图片。选择TabItem时更改图片

这是我的XAML

<TabControl> 
<TapItem> 
    <TabItem.Header> 
     <StackPanel Orientation="Horizontal"> 
      <Image Source="aa.png"/> 
      <TextBlock>AA</TextBlock> 
     </StackPanel> 
    </TabItem.Header> 
</TapItem> 

当TabItem的选择,我想从 “aa.png” 更改为 “sel_aa.png”。

回答

2

可以触发添加到您的TabItem的ControlTemplate

<Style TargetType="{x:Type TabItem}"> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type TabItem}"> 
        <Grid> 
         <Grid.RowDefinitions> 
          <RowDefinition Height="30"></RowDefinition> 
          <RowDefinition Height="30"></RowDefinition> 
         </Grid.RowDefinitions> 
         <Border Grid.Row="0" Name="Border"> 
          <ContentPresenter Content="AA" VerticalAlignment="Center" Margin="5" HorizontalAlignment="Center" ContentSource="Header" /> 
         </Border> 
         <Image Grid.Row="1" x:Name="Image"/> 
        </Grid> 
        <ControlTemplate.Triggers> 
         <Trigger Property="IsSelected" Value="True"> 
          <Setter TargetName="Border" Property="Background" Value="Red" /> 
          <Setter TargetName="Image" Property="Image.Source" Value="sel_aa.png" /> 
         </Trigger> 
         <Trigger Property="IsSelected" Value="False"> 
          <Setter TargetName="Border" Property="Background" Value="Green" /> 
          <Setter TargetName="Image" Property="Image.Source" Value="aa.png" /> 
         </Trigger> 
        </ControlTemplate.Triggers> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 

当你的TabItem的选择了激活触发器和图像源将变成sel_aa,当TabItem的未选中的图像来源是AA。