Exemple #1
0
        /// <summary>
        /// Добавление букв в очередь
        /// </summary>
        /// <param name="characters">Символы добавляемых букв</param>
        public void AddLettersOnControl(char[] characters)
        {
            int curLetterX = Width;

            foreach (var character in characters)
            {
                char   letter    = char.ToUpper(character);
                float  xPos      = curLetterX;
                float  yPos      = this.Height / 2 - 30;
                Color  color     = KeyboardHelper.GetKeyColorForChar(letter);
                Letter newLetter = new Letter(letter, new PointF(xPos, yPos), color);
                TextToTypeQueue.Enqueue(newLetter);
                curLetterX += 30;
            }
        }
        /// <summary>
        /// Добавление букв в поток букв
        /// </summary>
        /// <param name="letters">Символы добавляемых букв</param>
        /// <param name="interval">Коэффициент, задающий межбуквенный интервал в потоке (чем он меньше, тем меньше интервал)</param>
        public void AddLettersToStream(char[] letters, int interval)
        {
            int circleRadius = Height / 2;
            int intervalVal  = interval * circleRadius; // = радиус кольца на интервальный коэффициент
            int curLetterX   = Width;

            foreach (var c in letters)
            {
                char letter = char.ToUpper(c);
                // Добавляемая буква появляется на правой границе элемента управления
                float xPos  = curLetterX;
                float yPos  = (circleRadius + 15) - rand.Next(circleRadius - 10);
                Color color = KeyboardHelper.GetKeyColorForChar(letter);
                // Формируем новую букву и добавляем её
                Letter addingLetter = new Letter(letter, new PointF(xPos, yPos), color);
                LettersStream.Enqueue(addingLetter);
                curLetterX += intervalVal;
            }
        }