У меня есть объект данных - пользовательский класс под названием Notification
, который предоставляет свойство IsCritical
. Идея состоит в том, что, если уведомление истечет, оно имеет период действия и внимание пользователя должно быть обращено на него.
Представьте сценарий с этими тестовыми данными:
_source = new[] {
new Notification { Text = "Just thought you should know" },
new Notification { Text = "Quick, run!", IsCritical = true },
};
Второй элемент должен появиться в ItemsControl
с импульсным фоном. Здесь простейший пример шаблона данных, который показывает средства, с помощью которых я думал об анимации фона между серым и желтым.
<DataTemplate DataType="Notification">
<Border CornerRadius="5" Background="#DDD">
<Border.Triggers>
<EventTrigger RoutedEvent="Border.Loaded">
<BeginStoryboard>
<Storyboard>
<ColorAnimation
Storyboard.TargetProperty="Background.Color"
From="#DDD" To="#FF0" Duration="0:0:0.7"
AutoReverse="True" RepeatBehavior="Forever" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Border.Triggers>
<ContentPresenter Content="{TemplateBinding Content}" />
</Border>
</DataTemplate>
Я не уверен, как сделать эту анимацию условной для значения IsCritical
. Если значение привязки false
, тогда необходимо сохранить цвет фона #DDD
по умолчанию.