Ho un oggetto dati - una classe personalizzata denominata Notification
- che espone una proprietà IsCritical
. L'idea è che se una notifica scadrà, avrà un periodo di validità e l'attenzione dell'utente dovrebbe essere attirata verso di essa.WPF - Esecuzione di un'animazione condizionale su una proprietà dell'elemento di dati associato
immaginare uno scenario con questi dati di test:
_source = new[] {
new Notification { Text = "Just thought you should know" },
new Notification { Text = "Quick, run!", IsCritical = true },
};
Il secondo elemento deve apparire nella ItemsControl
con uno sfondo pulsante. Ecco un semplice esempio di modello di dati che mostra i mezzi con cui stavo pensando di animare lo sfondo tra grigio e giallo.
<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>
Quello che io sono sicuro circa è come fare questa animazione subordinato il valore di IsCritical
. Se il valore associato è false
, è necessario mantenere il colore di sfondo predefinito di #DDD
.
@Anvanka - grazie per questo. Non avevo usato DataTrigger EnterActions o ExitActions prima. Grazie anche per l'esempio dettagliato - una grande risposta e degna della generosità. –
Siete i benvenuti :). Sono contento di poterti aiutare. – Anvaka