2009-11-14 8 views
5

Ho un TabControl in WPF con 3 schede e ogni scheda ha un'immagine accanto al titolo della scheda. Ecco un esempioWPF TabItem Header Images

 <TabItem> 
      <TabItem.Header> 
       <StackPanel Orientation="Horizontal"> 
        <Image Name="img" Height="auto" Width="auto" Source="images/1.png" /> 
        <TextBlock Text="Login" Margin="2,0,0,0" VerticalAlignment="Center" /> 
       </StackPanel> 
      </TabItem.Header> 
     </TabItem> 

Quando la scheda si seleziona il testo è nero e lo sfondo è bianco, quando non si tratta di un colore grigio chiaro e un testo leggermente più scuro. Funziona alla grande, ma quello che non riesco a capire è come cambiare le immagini sulle schede che non sono selezionate? In questo momento le immagini sembrano tutte uguali, un cerchio verde con un numero all'interno, ma quando una scheda non è selezionata mi piacerebbe che cambiasse in un'immagine diversa, cioè immagini/1_notselected.png e images/2_notselected.png quando la scheda è è quello selezionato. Grazie!

risposta

6

dichiarare uno stile per TabItem e all'interno dello stile modificare l'immagine in un trigger.

Dichiarare un HeaderTemplate e quindi utilizzare trigger come questo:

<Trigger Property="IsSelected" Value="True"> 
     <Setter Property="Source" TargetName="img" Value="images/customimage.png"/> 
    </Trigger>