Я хотел бы создать простую анимацию, тип которой основан на некотором значении. Мне нужно изменить цвет текста в элементе управления TextBlock, но целевой цвет зависит от ограниченной переменной. Я уже создал 2 DataTriggers и, в зависимости от значения моей ограниченной переменной, должна начаться правильная анимация. В начале все, кажется, работает должным образом (AnimationValue при запуске равно 0), когда значение меняется на 1, анимация запускается, затем значение возвращается к 0. Проблема в том, что, когда значение превращается в 2 (анимация с другим цветом такжезапускается), а затем снова 0, первая анимация больше не будет работать, но вторая все еще работает должным образом.
<Border
Grid.Column="0"
Background="Transparent">
<TextBlock
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="32"
Foreground="White"
Text="MyText">
<TextBlock.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=AnimationValue}" Value="1">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation
Storyboard.TargetProperty="Foreground.Color"
To="Gray"
Duration="0:0:0.2" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation
Storyboard.TargetProperty="Foreground.Color"
To="White"
Duration="0:0:0.2" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.ExitActions>
</DataTrigger>
<DataTrigger Binding="{Binding Path=AnimationValue}" Value="2">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation
Storyboard.TargetProperty="Foreground.Color"
To="Firebrick"
Duration="0:0:0.2" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation
Storyboard.TargetProperty="Foreground.Color"
To="White"
Duration="0:0:0.2" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.ExitActions>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</Border>
Нет проблем с установкой правильного значения - я проверил его с помощью отладчика и каждый раз устанавливал правильное значение. 0 всегда между 1 и 2. DataContext также не является проблемой - соединение между View и ViewModel не разрывается. Я заметил, что сломанная анимация всегда первая в файле xaml. Теперь анимация «серый» перестает работать правильно, но если я порядок изменения в XAML файле, огнеупорный кирпич анимация будет сломана одна. Спасибо за любую помощь.