@RollRoll не входит в стандартный cmd.exe. Вы можете попробовать использовать консольный эмулятор, который поддерживает настройку фонового изображения, но, тем не менее, это не может быть сделано программно в любом случае.
Ремигиуш Шоида,
+1 Когда ты занимался этим более 10 лет и только сейчас узнал то, что они знали 10 лет назад .... это никогда не стареет, ха.
Шут
116
classProgram{staticvoidMain(){Console.BackgroundColor=ConsoleColor.Blue;Console.ForegroundColor=ConsoleColor.White;Console.WriteLine("White on blue.");Console.WriteLine("Another line.");Console.ResetColor();}}
Выше комментарии являются твердыми ответами, однако обратите внимание, что они не являются потокобезопасными. Если вы пишете на консоль с несколькими потоками, изменение цвета добавит условие гонки, которое может создать странный внешний вид. Это легко исправить, хотя:
Запись из нескольких потоков без синхронизации приведет к искаженному выводу, даже если нет изменений цвета: не только изменение цвета вызывает состояние гонки
Джо
6
@Joe Один Writeзвонок не будет искажен. См. Stackoverflow.com/questions/4812508/… . Это просто порядок записи вызовов, который не является «безопасным».
BatteryBackupUnit
27
Я создал небольшой плагин (доступный на NuGet ), который позволяет вам добавлять любой (если поддерживается вашим терминалом) цвет к выводу вашей консоли, без ограничений классических решений.
Это работает, расширяя Stringобъект, и синтаксис очень прост:
Это действительно удивительный кусок кода. Я ценю возможность в основном деактивировать расширение всего цвета. Подходит для использования опции цвета в linux (ls –color = auto).
MianenCZ
13
Да, это легко и возможно. Определите первые цвета по умолчанию.
Console.Clear()это важно для того, чтобы установить новые цвета консоли. Если вы не сделаете этот шаг, вы можете увидеть комбинированные цвета, когда запрашиваете значения с Console.ReadLine().
Затем вы можете изменить цвета на каждом принте:
Console.BackgroundColor=ConsoleColor.Black;Console.ForegroundColor=ConsoleColor.Red;Console.WriteLine("Red text over black.");
Когда закончите свою программу, не забудьте сбросить цвета консоли при завершении:
Console.ResetColor();Console.Clear();
Теперь с netcore у нас есть другая проблема, если вы хотите «сохранить» пользовательский интерфейс, потому что терминалы имеют разные цвета в каждой операционной системе.
Я делаю библиотеку, которая решает эту проблему с помощью Text Format: цвета, выравнивание и многое другое. Не стесняйтесь использовать и внести свой вклад.
Да, это возможно следующим образом. Эти цвета можно использовать в консольном приложении для просмотра ошибок красного цвета и т. Д.
Console.BackgroundColor=ConsoleColor.Blue;Console.ForegroundColor=ConsoleColor.White;//after this line every text will be white on blue backgroundConsole.WriteLine("White on blue.");Console.WriteLine("Another line.");Console.ResetColor();//reset to the defoult colour
Вот простой метод, который я написал для написания консольных сообщений со встроенными изменениями цвета. Он поддерживает только один цвет, но он соответствует моим потребностям.
// usage: WriteColor("This is my [message] with inline [color] changes.", ConsoleColor.Yellow);staticvoidWriteColor(string message,ConsoleColor color){var pieces =Regex.Split(message,@"(\[[^\]]*\])");for(int i=0;i<pieces.Length;i++){string piece = pieces[i];if(piece.StartsWith("[")&& piece.EndsWith("]")){Console.ForegroundColor= color;
piece = piece.Substring(1,piece.Length-2);}Console.Write(piece);Console.ResetColor();}Console.WriteLine();}
Взято отсюда .
источник
Выше комментарии являются твердыми ответами, однако обратите внимание, что они не являются потокобезопасными. Если вы пишете на консоль с несколькими потоками, изменение цвета добавит условие гонки, которое может создать странный внешний вид. Это легко исправить, хотя:
источник
Write
звонок не будет искажен. См. Stackoverflow.com/questions/4812508/… . Это просто порядок записи вызовов, который не является «безопасным».Я создал небольшой плагин (доступный на NuGet ), который позволяет вам добавлять любой (если поддерживается вашим терминалом) цвет к выводу вашей консоли, без ограничений классических решений.
Это работает, расширяя
String
объект, и синтаксис очень прост:Поддерживаются цвета переднего плана и фона.
источник
Да, это легко и возможно. Определите первые цвета по умолчанию.
Console.Clear()
это важно для того, чтобы установить новые цвета консоли. Если вы не сделаете этот шаг, вы можете увидеть комбинированные цвета, когда запрашиваете значения сConsole.ReadLine()
.Затем вы можете изменить цвета на каждом принте:
Когда закончите свою программу, не забудьте сбросить цвета консоли при завершении:
Теперь с netcore у нас есть другая проблема, если вы хотите «сохранить» пользовательский интерфейс, потому что терминалы имеют разные цвета в каждой операционной системе.
Я делаю библиотеку, которая решает эту проблему с помощью Text Format: цвета, выравнивание и многое другое. Не стесняйтесь использовать и внести свой вклад.
https://github.com/deinsoftware/colorify/, а также доступен в виде пакета NuGet
Цвета для Windows / Linux (Dark):
Цвета для MacOS (Light):
источник
Просто добавьте к ответам выше, которые все используют
Console.WriteLine
: чтобы изменить цвет в той же строке текста, напишите, например:источник
Да, это возможно следующим образом. Эти цвета можно использовать в консольном приложении для просмотра ошибок красного цвета и т. Д.
источник
Вот простой метод, который я написал для написания консольных сообщений со встроенными изменениями цвета. Он поддерживает только один цвет, но он соответствует моим потребностям.
источник