У меня странная проблема с цветной анимацией.
У меня есть список элементов, связанных со списком.Эти элементы имеют свойство enum, которое может иметь одно из трех значений - NoRemarks, RemarksFound и RemarksUpdated.
На табличке данных для этого списка у меня есть прямоугольник, который отображает цвет, связанный со статусом элемента - красный, оранжевыйили зеленый.В шаблоне есть триггер данных для анимации блока, но всякий раз, когда запускается анимация, она как бы сохраняет старые цвета.Если я оживляю от красного до зеленого, я получаю что-то оранжево-темно-зеленого цвета.Если я анимирую с оранжевого на зеленый, я получу аналогичный цвет, хотя я вижу, что цвет немного отличается от того, когда я анимирую с красного на зеленый.
Вот XAML - я включил тольконеобходимые детали:
Прямоугольник:
<Rectangle x:Name="HeaderRemarkStatusRectangle" Grid.Column="1" Grid.Row="0" Grid.RowSpan="3" HorizontalAlignment="Left"
RadiusX="1" RadiusY="1" Width="10" Margin="3" StrokeThickness="1" >
<Rectangle.Stroke>
<SolidColorBrush Color="#FFDC5A5A" x:Name="RectangleStroke" />
</Rectangle.Stroke>
<Rectangle.Fill>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Color="#ff7a7a" Offset="0.5" x:Name="GradientStop1" />
<GradientStop Color="#ff5653" Offset="0.5" x:Name="GradientStop2" />
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
Триггеры:
<DataTrigger Binding="{Binding Path=ItemStatus}" Value="RemarksUpdated">
<DataTrigger.EnterActions>
<BeginStoryboard>
<BeginStoryboard.Storyboard>
<Storyboard Duration="0:0:0.5" >
<ColorAnimation Storyboard.TargetName="GradientStop1" Storyboard.TargetProperty="Color" To="#83ec71" />
<ColorAnimation Storyboard.TargetName="GradientStop2" Storyboard.TargetProperty="Color" To="#5dda4e" />
<ColorAnimation Storyboard.TargetName="RectangleStroke" Storyboard.TargetProperty="Color" To="#FF50AA46" />
</Storyboard>
</BeginStoryboard.Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
</DataTrigger>
</DataTemplate.Triggers>
Я попытался несколько вещей, чтобы исправить проблему...
Я пытался установить Datatrigger.exitactions для каждого триггера, чтобы вернуть цвет к белому (немного выдумки, но я хотел посмотреть, была ли проблема в пропущенном разделе «От»).Когда анимация сработала, у меня получился полупрозрачный прямоугольник, хотя это был правильный цвет.
Я также попытался установить свойство from - опять же, не очень практично, так как я не знаюкаким будет исходный цвет для триггера, но я хотел увидеть эффект.Я получил результат, аналогичный приведенному выше.
Также попытался изменить свойство FillBehaviour, но установка его на «стоп» означала, что цвет вернется к исходному цвету, как только анимация завершится (как и ожидалось).
Я думал, что анимация будет анимироваться из текущего цвета (либо из таблицы данных, либо из текущей анимации, если таковая существует), и будет анимироваться до нового цвета.Я не могу понять, почему я, кажется, получаю цвет между оригинальным и новым цветом.Это известная проблема с цветной анимацией или проблема с моими триггерами?
Спасибо всем