Change background color of header in WPF expander

Arsen Mkrtchyan picture Arsen Mkrtchyan · May 20, 2009 · Viewed 14.4k times · Source

I am trying to change the expander background color. It seems so easy but I can't get it to work.

<Expander Name="expOneDay">
        <Expander.Header>
            <TextBlock Foreground="CadetBlue" Text="Some Text" HorizontalAlignment="Stretch" />
        </Expander.Header>
 ...

</Expander><br/><br/>

Why doesn't HorizontalAlignment="Stretch" help? I am trying to bind the width of Header to the width of Expander but the result is not nice looking.

Answer

Muad&#39;Dib picture Muad'Dib · May 20, 2009

here you go, this should do the trick.... You should set the width of the header template to the width of the expander.

<Expander Name="expOneDay" 
          HorizontalAlignment="Stretch"
          HorizontalContentAlignment="Stretch" Width="Auto">
     <Expander.Header >
          <Border Background="Bisque">
               <TextBlock Foreground="White" Text="Steve" 
                          Width="{Binding ElementName=expOneDay, Path=ActualWidth}"
                          HorizontalAlignment="Stretch" />
          </Border>
     </Expander.Header>
</Expander>