ToggleButton Alternate Icons
Problem
The base ToggleButton control does not provide a way to switch its content when toggled. This is a common pattern in modern UIs, where a ToggleButton can be used to switch between two states, and the content should change accordingly.
Solution
The Uno Themes library provides a set of attached properties grouped under the ControlExtensions class. One of these attached properties is the AlternateContent property. The Uno Material library provides custom styles for the ToggleButton that support the AlternateContent property.
ToggleButton AlternateContent
Given the following XAML:
<ToggleButton Style="{StaticResource IconToggleButtonStyle}"
IsChecked="{Binding IsFavorite}"
Command="{utu:AncestorBinding AncestorType=uer:FeedView,
Path=DataContext.FavoriteRecipe}"
CommandParameter="{Binding}">
<ToggleButton.Content>
<PathIcon Data="{StaticResource Icon_Heart}"
Foreground="{ThemeResource OnSurfaceBrush}" />
</ToggleButton.Content>
<ut:ControlExtensions.AlternateContent>
<PathIcon Data="{StaticResource Icon_Heart_Filled}"
Foreground="{ThemeResource PrimaryBrush}" />
</ut:ControlExtensions.AlternateContent>
</ToggleButton>
