private void SceneViewModel_StopHighlighting(object sender, HighlightItemEventArgs e) { Dispatcher.BeginInvoke(new Action(() => { var item = items.FirstOrDefault(i => i.Value == e.HighlightableItem); if (item.Key != null) { item.Key.Opacity = .5; } storyBoard.Stop(); storyBoard.Children.Clear(); }), null); }
private void SceneViewModel_HighlightItem(object sender, HighlightItemEventArgs e) { Dispatcher.BeginInvoke(new Action(() => { Color?colorFrom = null; Color?colorTo = null; if (e.PracticeItemResult == PracticeItemResult.Default) { colorFrom = (Color)ColorConverter.ConvertFromString("#CC2700B9"); colorTo = (Color)ColorConverter.ConvertFromString("#F665A505"); } else if (e.PracticeItemResult == PracticeItemResult.Wrong) { colorFrom = (Color)ColorConverter.ConvertFromString("#FCB90C00"); colorTo = (Color)ColorConverter.ConvertFromString("#F6FF0051"); } else if (e.PracticeItemResult == PracticeItemResult.Fixed) { colorFrom = (Color)ColorConverter.ConvertFromString("#FCECE312"); colorTo = (Color)ColorConverter.ConvertFromString("#DEDBDE26"); } else if (e.PracticeItemResult == PracticeItemResult.Right) { colorFrom = (Color)ColorConverter.ConvertFromString("#B92BB313"); colorTo = (Color)ColorConverter.ConvertFromString("#FC0A770F"); } var item = items.FirstOrDefault(i => i.Value == e.HighlightableItem); item.Key.Opacity = 1; ColorAnimation colorAnimation = new ColorAnimation { AutoReverse = true, Duration = new Duration(TimeSpan.FromMilliseconds(500)), RepeatBehavior = RepeatBehavior.Forever, From = colorFrom, To = colorTo }; PropertyPath colorTargetPath = new PropertyPath("(Border.Background).(SolidColorBrush.Color)"); storyBoard = new Storyboard(); Storyboard.SetTarget(colorAnimation, item.Key); Storyboard.SetTargetProperty(colorAnimation, colorTargetPath); storyBoard.Children.Add(colorAnimation); storyBoard.Begin(); })); }