#917 – Changing Something when an Expander Is Expanded
September 30, 2013 Leave a comment
You can use a trigger to change some property in an Expander whenever the Expander is expanded. You set the trigger to react to a change in the IsExpanded property.
In the example below, we define a trigger that changes the border color for any expander that is expanded.
<Window.Resources> <Style x:Key="changeColorOnExpanded" TargetType="Expander"> <Setter Property="BorderBrush" Value="DarkGray"/> <Setter Property="Margin" Value="10,5"/> <Style.Triggers> <Trigger Property="IsExpanded" Value="True"> <Setter Property="BorderBrush" Value="Crimson"/> </Trigger> </Style.Triggers> </Style> </Window.Resources> <StackPanel> <Expander Style="{StaticResource changeColorOnExpanded}" Header="Great Novels"> <ScrollViewer> <StackPanel> <TextBlock Text="Ulysses"/> <TextBlock Text="The Great Gatsby"/> <TextBlock Text="A Portrait of the Artist as a Young Man"/> <TextBlock Text="Lolita"/> </StackPanel> </ScrollViewer> </Expander> <Expander Style="{StaticResource changeColorOnExpanded}" Header="Funny Guys"> <ScrollViewer> <StackPanel> <TextBlock Text="Bill Murray"/> <TextBlock Text="Eddie Murphy"/> <TextBlock Text="Will Ferrell"/> <TextBlock Text="John Cleese"/> </StackPanel> </ScrollViewer> </Expander> </StackPanel>