I update your Style code as below:
Xaml code:
<Window.Resources>
<Style x:Key="CustomButtonStyle" TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate x:Name="MyControlTemplate" TargetType="{x:Type Button}">
<Border x:Name="MyBorder" Cursor="Hand" BorderBrush="DarkGray" BorderThickness="0.5" CornerRadius="9" Background="WhiteSmoke">
<StackPanel Margin="0,0,0,0" Height="24" Width="24">
<Line Name="LineA" Stroke="Green" StrokeThickness="2" StrokeStartLineCap="Round" StrokeEndLineCap="Round" X1="4" X2="20" Y1="9" Y2="9"/>
<Line Name="LineB" Stroke="White" StrokeThickness="2" StrokeStartLineCap="Round" StrokeEndLineCap="Round" X1="4" X2="20" Y1="2" Y2="2"/>
<Line Name="LineC" Stroke="Red" StrokeThickness="2" StrokeStartLineCap="Round" StrokeEndLineCap="Round" X1="4" X2="20" Y1="2" Y2="2"/>
</StackPanel>
<Border.Resources>
<Storyboard x:Key="CustomButtonLineAIsCheckedTrue">
<ColorAnimation From="Transparent" To="Green" Duration="00:00:01" Storyboard.TargetName="LineA" Storyboard.TargetProperty="(Line.Stroke).(SolidColorBrush.Color)" SpeedRatio="4" AutoReverse="False"/>
</Storyboard>
<Storyboard x:Key="CustomButtonLineAIsCheckedFalse">
<ColorAnimation From="Green" To="Transparent" Duration="00:00:01" Storyboard.TargetName="LineA" Storyboard.TargetProperty="(Line.Stroke).(SolidColorBrush.Color)" SpeedRatio="4" AutoReverse="False"/>
</Storyboard>
<Storyboard x:Key="CustomButtonLineBIsCheckedTrue">
<ColorAnimation From="Transparent" To="White" Duration="00:00:01" Storyboard.TargetName="LineB" Storyboard.TargetProperty="(Line.Stroke).(SolidColorBrush.Color)" SpeedRatio="4" AutoReverse="False"/>
</Storyboard>
<Storyboard x:Key="CustomButtonLineBIsCheckedFalse">
<ColorAnimation From="White" To="Transparent" Duration="00:00:01" Storyboard.TargetName="LineB" Storyboard.TargetProperty="(Line.Stroke).(SolidColorBrush.Color)" SpeedRatio="4" AutoReverse="False"/>
</Storyboard>
<Storyboard x:Key="CustomButtonLineCIsCheckedTrue">
<ColorAnimation From="Transparent" To="Red" Duration="00:00:01" Storyboard.TargetName="LineC" Storyboard.TargetProperty="(Line.Stroke).(SolidColorBrush.Color)" SpeedRatio="4" AutoReverse="False"/>
</Storyboard>
<Storyboard x:Key="CustomButtonLineCIsCheckedFalse">
<ColorAnimation From="Red" To="Transparent" Duration="00:00:01" Storyboard.TargetName="LineC" Storyboard.TargetProperty="(Line.Stroke).(SolidColorBrush.Color)" SpeedRatio="4" AutoReverse="False"/>
</Storyboard>
</Border.Resources>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
The C# code is:
private void AutomaticSystemCalendar_CustomBorder_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
Border border = (Border)AutomaticSystemCalendar_CustomButton.Template.FindName("MyBorder", AutomaticSystemCalendar_CustomButton);
if (border == null) return;
switch (CustomButtonIsChecked)
{
case true:
(border.Resources["CustomButtonLineAIsCheckedFalse"] as Storyboard).Begin();
(border.Resources["CustomButtonLineBIsCheckedFalse"] as Storyboard).Begin();
(border.Resources["CustomButtonLineCIsCheckedFalse"] as Storyboard).Begin();
CustomButtonIsChecked = false;
break;
case false:
(border.Resources["CustomButtonLineAIsCheckedTrue"] as Storyboard).Begin();
(border.Resources["CustomButtonLineBIsCheckedTrue"] as Storyboard).Begin();
(border.Resources["CustomButtonLineCIsCheckedTrue"] as Storyboard).Begin();
CustomButtonIsChecked = true;
break;
}
}
The result is:
If the response is helpful, please click "Accept Answer" and upvote it.
Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.