private void ShowSingleTestCompletion(TestStatus status) { Grid visual = new Grid() { Width = 80, Height = 80, HorizontalAlignment = HorizontalAlignment.Left, VerticalAlignment = VerticalAlignment.Bottom, Margin = new Thickness(24) }; Color indicatorColor; Symbol symbol; if (status.IsPassingStatus()) { indicatorColor = Colors.Green; symbol = Symbol.Accept; } else if (status.NewCard) { indicatorColor = Color.FromArgb(255, 65, 159, 254); // A nice blue color symbol = Symbol.Add; } else { indicatorColor = Colors.Red; symbol = Symbol.Cancel; } visual.Children.Add(new Ellipse() { Fill = new SolidColorBrush(indicatorColor) }); visual.Children.Add(new SymbolIcon(symbol) { Foreground = new SolidColorBrush(Colors.White), HorizontalAlignment = HorizontalAlignment.Center, VerticalAlignment = VerticalAlignment.Center }); RootGrid.Children.Add(visual); visual.RenderTransform = new TranslateTransform(); const int duration = 1; DoubleAnimation move = new DoubleAnimation() { From = 0, To = -200, Duration = TimeSpan.FromSeconds(duration) }; DoubleAnimation opacity = new DoubleAnimation() { From = 1, To = 0, Duration = TimeSpan.FromSeconds(duration) }; Storyboard s = new Storyboard(); s.Children.Add(move); s.Children.Add(opacity); Storyboard.SetTarget(move, visual.RenderTransform); Storyboard.SetTargetProperty(move, "Y"); Storyboard.SetTarget(opacity, visual); Storyboard.SetTargetProperty(opacity, "Opacity"); s.Completed += delegate { RootGrid.Children.Remove(visual); }; s.Begin(); }