Mam obiekt danych - klasa niestandardowa o nazwie Notification
- która udostępnia właściwość IsCritical
. Chodzi o to, że jeśli powiadomienie wygaśnie, ma ono okres ważności i należy zwrócić na niego uwagę użytkownika.WPF - Wykonywanie warunku animacji zależne od właściwości powiązanego elementu danych
Wyobraźmy sobie scenariusz z tymi danymi testu:
_source = new[] {
new Notification { Text = "Just thought you should know" },
new Notification { Text = "Quick, run!", IsCritical = true },
};
Drugi element powinien pojawić się w ItemsControl
na tle pulsującej. Oto prosty fragment szablonu danych, który pokazuje środki, dzięki którym myślałem o animacji tła między szarością a kolorem żółtym.
<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>
Co jestem pewien sposób, aby ta animacja uzależnione od wartości IsCritical
. Jeśli powiązana wartość to false
, należy zachować domyślny kolor tła #DDD
.
@Anvanka - dzięki za to. Nie korzystałem wcześniej z DataTrigger EnterActions lub ExitActions. Dziękuję również za dokładny przykład - wspaniała odpowiedź i godny nagrody. –
Serdecznie zapraszamy :). Cieszę się że mogłem pomóc. – Anvaka