3 / 3 / 1
Регистрация: 19.11.2014
Сообщений: 65
1

Плавное изменение цвета консоли

20.11.2014, 16:42. Показов 3670. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Приветствую, друзья!
Насобирал такой код изменяющий цвет консоли по нажатию на клавиши:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using System;
 
namespace Цвета_консоли
{
    class Program
    {
        static void Main()
        {
            //Получение имени цвета в массив.
            // (typeof(ConsoleColor) не очень понятно.
            String[] colorNames = ConsoleColor.GetNames(typeof(ConsoleColor)); 
 
//=====================================================================
            //Формирование счетчика со сравнением. colorNames.Length показывает индекс цвета в массиве?
       for (int x = 0; x < colorNames.Length; x++)
        {
            //Начинаем с черного
            Console.BackgroundColor = ConsoleColor.Black;
            //Тут возможно есть лишний код. Как он работает?
            Console.BackgroundColor = (ConsoleColor)Enum.Parse(typeof(ConsoleColor), colorNames[x]);
            //Тщательно чистим экран
            Console.Clear();
            Console.WriteLine("Тыкайте любые клавиши");
//=====================================================================
            ; Console.ReadKey();
        }
        }
    }
}
Как к нему прицепить таймер, чтобы цвет менялся плавно менялся цвет консоли? (смотрел fromRGB, не понял как подключить)

И подскажите пожалуйста следующие моменты:
// (typeof(ConsoleColor) не очень понятно.
C#
1
            String[] colorNames = ConsoleColor.GetNames(typeof(ConsoleColor));
//Формирование счетчика со сравнением. colorNames.Length показывает индекс цвета в массиве?
C#
1
       for (int x = 0; x < colorNames.Length; x++)
//Тут возможно есть лишний код. Как он работает?
C#
1
            Console.BackgroundColor = (ConsoleColor)Enum.Parse(typeof(ConsoleColor), colorNames[x]);
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.11.2014, 16:42
Ответы с готовыми решениями:

Изменение цвета в консоли
И снова здравствуйте. Встала задача изменить цвет текста при выводе на консоль. Реализовать это...

Изменение цвета текста в консоли
Здравствуйте! Возникла небольшая проблема с оформлением, хочу что бы каждая переменная имела свой...

ContextMenu изменение цвета выбора и цвета текста
Добрый день подскажите как сделать так что бы после выбора пункта меню цвет текста менялся обратно...

Смена цвета в консоли
Здравствуйте. Дана строка &quot;приветкакдела&quot;. Как изменить цвет в ранее найденных позициях? Чтобы в...

8
Эксперт .NET
5531 / 4296 / 1216
Регистрация: 12.10.2013
Сообщений: 12,329
Записей в блоге: 2
20.11.2014, 18:25 2
Цитата Сообщение от Proektura Посмотреть сообщение
Как к нему прицепить таймер, чтобы цвет менялся плавно менялся цвет консоли?
Плавно - это типа совсем плавно или из заданного набора? Если из заданного набора - то вот, цвет меняется примерно раз в полсекунды (можете изменить).
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
using System.Threading;
 
namespace ConsoleColoring {
    class Program {
        static string[] colors = Enum.GetNames(typeof(ConsoleColor));
        static int index = 0;
 
        static void Main(string[] args) {
            Timer myTimer = new Timer(new TimerCallback(CallBack), null, 0, 500);
            Console.ReadLine();
        }
        static void CallBack(object state) {
            Console.ForegroundColor = (ConsoleColor)Enum.Parse(typeof(ConsoleColor), colors[index]);
            index++;
            index=(index==colors.Length)? 0 :index;
        }
    }
}
0
3 / 3 / 1
Регистрация: 19.11.2014
Сообщений: 65
20.11.2014, 19:10  [ТС] 3
insite2012, не меняется цвет в предложенном решении((.
0
45 / 45 / 32
Регистрация: 15.04.2011
Сообщений: 187
20.11.2014, 19:31 4
Proektura, а ты напиши в консоли что-нибудь
0
Эксперт .NET
5531 / 4296 / 1216
Регистрация: 12.10.2013
Сообщений: 12,329
Записей в блоге: 2
20.11.2014, 19:32 5
Цитата Сообщение от Proektura Посмотреть сообщение
не меняется цвет в предложенном решении
Это как??? Вы текст вводите постепенно и посмотрите на его цвет))
0
3 / 3 / 1
Регистрация: 19.11.2014
Сообщений: 65
20.11.2014, 20:09  [ТС] 6
Извиняюсь, все работает!)) Только немного не так.))
При вводе текста меняется его цвет. Изначально же речь шла о смене цвета бэкграунда.
Вот, немного строчное ForegroundColor заменил на BackgroundColor и очистку экрана. Попробуйте запустить.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
using System.Threading;
 
namespace ConsoleColoring
{
    class Program
    {
        static string[] colors = Enum.GetNames(typeof(ConsoleColor));
        static int index = 0;
 
        static void Main(string[] args)
        {
            Timer myTimer = new Timer(new TimerCallback(CallBack), null, 0, 500);
            Console.ReadLine();
        }
        static void CallBack(object state)
        {
            Console.BackgroundColor = (ConsoleColor)Enum.Parse(typeof(ConsoleColor), colors[index]);
[B]//Очистка экрана[/B]
            Console.Clear();
            index++;
            index = (index == colors.Length) ? 0 : index;
        }
    }
}
Под плавной сменой цвета имею ввиду плавные переходы цветов, не резкие, например, красный, оранжевый, желтый, а как если бы мы завязали счетчик на одно из значений rgb, что дало бы нам плавную смену цвета.
Как вот можно запилить такую вещь?
0
Эксперт .NET
5531 / 4296 / 1216
Регистрация: 12.10.2013
Сообщений: 12,329
Записей в блоге: 2
20.11.2014, 20:12 7
Цитата Сообщение от Proektura Посмотреть сообщение
Вот, немного строчное ForegroundColor заменил на BackgroundColor и очистку экрана. Попробуйте запустить.
Вау, а мы не знали как сменить цвет фона... Бродили тут во тьме неведения... Спасибо, просветили нас, неучей...
По теме - я предполагал, что вас интересует именно цвет шрифта, а не фона.
По плавному изменению - не могу ничего подсказать, поскольку не пробовал. Будет время - поробую.
0
418 / 316 / 241
Регистрация: 29.05.2010
Сообщений: 796
Записей в блоге: 1
20.11.2014, 20:25 8
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
using System;
 
 
using System.Threading;
 
namespace ConsoleColoring
{
    class Program
    {
 
        static void DrawSpace()
        {
            string []colors = Enum.GetNames(typeof(ConsoleColor));
            Random rnd=new Random();
 
            Console.BackgroundColor =(ConsoleColor)Enum.Parse(typeof(ConsoleColor), colors[rnd.Next(0,colors.Length)]);
            for (int i = 0; i < 25; i++)
            {
                if(i%3==0)
                    Thread.Sleep(200);
                Console.WriteLine(new string(' ',60));
            }
        }
        static void Main(string[] args)
        {
            Console.SetWindowSize(60,29);
            Console.Title = "~~~~Console~~~~~~";
            while (true)
            {
               
              DrawSpace();
                Console.SetCursorPosition(10,25);
                Console.ReadKey(true);
                Console.SetCursorPosition(0,0);
            }
        }
       
    }
}
1
3 / 3 / 1
Регистрация: 19.11.2014
Сообщений: 65
20.11.2014, 21:29  [ТС] 9
Цитата Сообщение от insite2012 Посмотреть сообщение
Вау, а мы не знали как сменить цвет фона... Бродили тут во тьме неведения... Спасибо, просветили нас, неучей...

Искренне прошу прощения, немного бестактно выразил мысль, просто хотел перечислить внесенные изменения))), но ничего плохого не имел ввиду!
Наоборот, друзья, Вы приносите светочь знания, которая пузырьковой сортировкой возносится от низин false к вершинам true!

Добавлено через 52 минуты
kypiwindy, весьма интересно!!!))))
0
20.11.2014, 21:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.11.2014, 21:29
Помогаю со студенческими работами здесь

Цвета консоли и метод
Всем примет, хочу сократить ужасно длинный синтаксис выкраски консольки (текста консольки),...

Получение цвета данных символа в консоли
Пишу dll для простого рисования в консоли. Нужно сделать функцию GetPixel(int x, int y), которая...

Плавное изменение цвета кнопки
как сделать чтобы при наведении на кнопку она плавно меняла цвет и прозрачность?

Плавное изменение цвета формы
Хдравствуйте, есть такая задача: При перемещении указателя мыши по форме она должна плавно менять...

Плавное изменение RGB цвета компонента
Как сделать так что бы цвет RGB компонента плавно менялся по таймеру. Я не знаю как в C# с RBG...

Изменение цвета названия файла/папки (либо цвета подсветки)
Привет супер уважаемые супер форумчане!) Очень интересно, есть ли какой-то способ изменить цвет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru