Цветовые ресурсы, которые вы определили, настолько похожи, что я вообще не смог визуально обнаружить какие-либо изменения. После того, как я изменил канал Alpha (A) со 100 на 255 (полностью непрозрачный) и изменил цвета на что-то с некоторой контрастностью, анимация градиентного цвета, которую вы видели, могла нормально работать.
Ниже показано, как анимировать направление градиента от горизонтального к вертикальному.
LinearGradientBrush не может быть целью, но его свойства могут быть связаны. LinearGradientBrush.EndPoint
это точка. Поэтому я помещаю Point в свойство зависимости где-то, привязываю к нему и анимирую точку с помощью PointAnimation.
Вам придется оживить его и в выходных действиях.
<ControlTemplate TargetType="Button">
<Border x:Name="testBed"
Margin="{TemplateBinding Margin}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="10"
>
<Border.Tag>
<!-- You could find a better place to put this, but it'll do for an example. -->
<!-- See binding on basicBrush.EndPoint just below -->
<Point X="0" Y="1" />
</Border.Tag>
<Border.Background>
<LinearGradientBrush StartPoint="0,0" EndPoint="{Binding Tag, ElementName=testBed}" x:Name="basicBrush">
<LinearGradientBrush.GradientStops>
<GradientStop x:Name="BackgroundGradientStop1" Offset="0" Color="{StaticResource CorpGreen}"/>
Вниз в триггерах:
<Storyboard x:Name="MouseDownAnimation">
<ColorAnimation Storyboard.TargetName="BackgroundGradientStop1"
Storyboard.TargetProperty="Color"
To="{StaticResource CorpBlue_T1}"
Duration="0:0:0:1"/>
<ColorAnimation Storyboard.TargetName="BackgroundGradientStop2"
Storyboard.TargetProperty="Color"
To="{StaticResource CorpGreen_T1}"
Duration="0:0:0:1"/>
<PointAnimation Storyboard.TargetName="testBed"
Storyboard.TargetProperty="Tag"
From="0,1"
To="1,0"
Duration="0:0:0:1"
/>