Ich habe ein Datenobjekt - eine benutzerdefinierte Klasse namens Notification
- die eine IsCritical
-Eigenschaft freilegt. Die Idee ist, dass wenn eine Benachrichtigung abläuft, sie eine Gültigkeitsdauer hat und die Aufmerksamkeit des Benutzers darauf gerichtet sein sollte.WPF - Die Ausführung einer Animation von einer Eigenschaft des gebundenen Datenelements abhängig machen
ein Szenario mit diesen Testdaten Stellen Sie sich vor:
_source = new[] {
new Notification { Text = "Just thought you should know" },
new Notification { Text = "Quick, run!", IsCritical = true },
};
Das zweite Element in den ItemsControl
mit einem pulsierenden Hintergrund erscheinen soll. Hier ist ein einfacher Auszug aus einer Datenvorlage, der die Mittel zeigt, mit denen ich daran gedacht habe, den Hintergrund zwischen Grau und Gelb zu animieren.
<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>
Was ich bin nicht sicher, wie diese Animation auf den Wert von IsCritical
abhängig zu machen. Wenn der gebundene Wert false
ist, sollte die Standardhintergrundfarbe #DDD
beibehalten werden.
@Anvanka - danke dafür. Ich hatte DataTrigger EnterActions oder ExitActions noch nicht verwendet. Danke auch für das ausführliche Beispiel - eine gute Antwort und würdig der Prämie. –
Gern geschehen :). Es freut mich, dass ich helfen konnte. – Anvaka