Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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);
        }