Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/21: Рейтинг темы: голосов - 21, средняя оценка - 4.71
3 / 3 / 1
Регистрация: 19.11.2014
Сообщений: 65

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

20.11.2014, 16:42. Показов 4031. Ответов 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
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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.11.2014, 16:42
Ответы с готовыми решениями:

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

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

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

8
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
20.11.2014, 18:25
Цитата Сообщение от 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  [ТС]
insite2012, не меняется цвет в предложенном решении((.
0
45 / 45 / 32
Регистрация: 15.04.2011
Сообщений: 187
20.11.2014, 19:31
Proektura, а ты напиши в консоли что-нибудь
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
20.11.2014, 19:32
Цитата Сообщение от Proektura Посмотреть сообщение
не меняется цвет в предложенном решении
Это как??? Вы текст вводите постепенно и посмотрите на его цвет))
0
3 / 3 / 1
Регистрация: 19.11.2014
Сообщений: 65
20.11.2014, 20:09  [ТС]
Извиняюсь, все работает!)) Только немного не так.))
При вводе текста меняется его цвет. Изначально же речь шла о смене цвета бэкграунда.
Вот, немного строчное 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
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
20.11.2014, 20:12
Цитата Сообщение от Proektura Посмотреть сообщение
Вот, немного строчное ForegroundColor заменил на BackgroundColor и очистку экрана. Попробуйте запустить.
Вау, а мы не знали как сменить цвет фона... Бродили тут во тьме неведения... Спасибо, просветили нас, неучей...
По теме - я предполагал, что вас интересует именно цвет шрифта, а не фона.
По плавному изменению - не могу ничего подсказать, поскольку не пробовал. Будет время - поробую.
0
418 / 316 / 241
Регистрация: 29.05.2010
Сообщений: 796
Записей в блоге: 1
20.11.2014, 20:25
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  [ТС]
Цитата Сообщение от insite2012 Посмотреть сообщение
Вау, а мы не знали как сменить цвет фона... Бродили тут во тьме неведения... Спасибо, просветили нас, неучей...

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

Добавлено через 52 минуты
kypiwindy, весьма интересно!!!))))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.11.2014, 21:29
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru