private void AddFigure(FrameworkElement uie, char c) { FigureTemplate template = FigureGenerator.GenerateFigureTemplate(c); foreach (MainWindow window in this.windows) { UserControl f = FigureGenerator.NewUserControlFrom(template); window.AddFigure(f); var queue = figuresUserControlQueue[window.Name]; queue.Add(f); // Letters should already have accurate width and height, but others may them assigned. if (double.IsNaN(f.Width) || double.IsNaN(f.Height)) { f.Width = 300; f.Height = 300; } Canvas.SetLeft(f, Utils.RandomBetweenTwoNumbers(0, Convert.ToInt32(window.ActualWidth - f.Width))); Canvas.SetTop(f, Utils.RandomBetweenTwoNumbers(0, Convert.ToInt32(window.ActualHeight - f.Height))); Storyboard storyboard = Animation.CreateDPAnimation(uie, f, UIElement.OpacityProperty, new Duration(TimeSpan.FromSeconds(Settings.Default.FadeAfter)), 1, 0); if (Settings.Default.FadeAway) { storyboard.Begin(uie); } IHasFace face = f as IHasFace; if (face != null) { face.FaceVisible = Settings.Default.FacesOnShapes ? Visibility.Visible : Visibility.Hidden; } if (queue.Count > Settings.Default.ClearAfter) { window.RemoveFigure(queue[0]); queue.RemoveAt(0); } } // Find the last word typed, if applicable. string lastWord = this.wordFinder.LastWord(figuresUserControlQueue.Values.First()); if (lastWord != null) { foreach (MainWindow window in this.windows) { this.wordFinder.AnimateLettersIntoWord(figuresUserControlQueue[window.Name], lastWord); } SpeakString(lastWord); } else { PlaySound(template); } }
private void AddFigure(FrameworkElement uie, string s) { FigureTemplate template = FigureGenerator.GenerateFigureTemplate(s); foreach (MainWindow m in this.windows) { UserControl f = FigureGenerator.NewUserControlFrom(template); m.AddFigure(f); var queue = ellipsesUserControlQueue[m.Name]; queue.Enqueue(f); f.Width = 300; f.Height = 300; Canvas.SetLeft(f, Utils.RandomBetweenTwoNumbers(0, Convert.ToInt32(m.ActualWidth - f.Width))); Canvas.SetTop(f, Utils.RandomBetweenTwoNumbers(0, Convert.ToInt32(m.ActualHeight - f.Height))); Storyboard storyboard = Animation.CreateDPAnimation(uie, f, UIElement.OpacityProperty, new Duration(TimeSpan.FromSeconds(Settings.Default.FadeAfter)), 1, 0); if (Settings.Default.FadeAway) { storyboard.Begin(uie); } IHasFace face = f as IHasFace; if (face != null) { face.FaceVisible = Settings.Default.FacesOnShapes ? Visibility.Visible : Visibility.Hidden; } if (queue.Count > Settings.Default.ClearAfter) { UserControl u = queue.Dequeue() as UserControl; m.RemoveFigure(u); } } PlaySound(template); }