Первая проблема заключается в том, что вы устанавливаете фон для градиентной кисти в DataTrigger
. Поскольку это применяется позже, анимация не сможет найти кисть (отсюда загадочная ошибка, связанная с отсутствием свойства зависимости). Поэтому первое, что я сделал, - установил фон границы для кисти вручную, а не в триггере.
Вторая проблема заключалась в том, как вы настраивали целевое свойство. Вам не нужно использовать синтаксис в скобках - он отлично работает следующим образом: Background.GradientStops[0].Offset
.
С этими изменениями граница оживляет идеально; вот последняя наценка:
<Border>
<Border.Background>
<RadialGradientBrush>
<RadialGradientBrush.GradientStops>
<GradientStop Color="White" Offset="0" />
<GradientStop Color="Gold" Offset="1" />
</RadialGradientBrush.GradientStops>
</RadialGradientBrush>
</Border.Background>
<Border.Style>
<Style TargetType="{x:Type Border}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=IsEnabled, RelativeSource={RelativeSource Self}}" Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard x:Name="SomeStoryBoard">
<Storyboard>
<!-- RIGHT HERE -->
<DoubleAnimation
Storyboard.TargetProperty="Background.GradientStops[0].Offset"
From="0" To="1" Duration="0:0:1"
RepeatBehavior="Forever"
AutoReverse="True" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<RemoveStoryboard BeginStoryboardName="SomeStoryBoard" />
</DataTrigger.ExitActions>
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
</Border>