@RollRoll no está en el cmd.exe predeterminado. Sin embargo, puede intentar usar un emulador de consola, que admite ajustes de imagen de fondo, pero aún así, no se puede hacer programáticamente.
Remigiusz Schoida
+1 Cuando has estado haciendo esto durante más de 10 años y recién ahora aprendiste lo que sabían hace 10 años ... esto nunca pasa de moda, ja.
Bufón
116
classProgram{staticvoidMain(){Console.BackgroundColor=ConsoleColor.Blue;Console.ForegroundColor=ConsoleColor.White;Console.WriteLine("White on blue.");Console.WriteLine("Another line.");Console.ResetColor();}}
Los comentarios anteriores son respuestas sólidas, sin embargo, tenga en cuenta que no son seguros para subprocesos. Si está escribiendo en la consola con varios subprocesos, el cambio de colores agregará una condición de carrera que puede crear una salida de aspecto extraño. Sin embargo, es fácil de solucionar:
Escribir desde varios subprocesos sin sincronización dará como resultado una salida confusa, incluso si no hay cambios de color: no es solo el cambio de colores lo que causa una condición de carrera
Joe
66
@ Joe Una sola Writellamada no será confusa. Ver stackoverflow.com/questions/4812508/… . Es solo el orden de las llamadas de escritura que no es "seguro".
BatteryBackupUnit
27
Creé un pequeño complemento (disponible en NuGet ) que le permite agregar cualquier color (si es compatible con su terminal) a la salida de su consola, sin las limitaciones de las soluciones clásicas.
Funciona extendiendo el Stringobjeto y la sintaxis es muy simple:
"colorize me".Pastel("#1E90FF");
Se admiten los colores de primer plano y de fondo.
Esta es una pieza de código realmente sorprendente. Agradezco la opción de desactivar básicamente la extensión de color completo. Se adapta al uso de la opción de color en Linux (ls –color = auto).
MianenCZ
13
Sí, es fácil y posible. Defina los primeros colores predeterminados.
Console.Clear()Es importante para establecer nuevos colores de consola. Si no realiza este paso, puede ver los colores combinados cuando solicite valores con Console.ReadLine().
Luego puede cambiar los colores en cada impresión:
Console.BackgroundColor=ConsoleColor.Black;Console.ForegroundColor=ConsoleColor.Red;Console.WriteLine("Red text over black.");
Cuando finalice su programa, recuerde restablecer los colores de la consola al finalizar:
Console.ResetColor();Console.Clear();
Ahora con netcore tenemos otro problema si desea "preservar" la experiencia del Usuario porque los terminales tienen diferentes colores en cada Sistema Operativo.
Estoy haciendo una biblioteca que resuelve este problema con el formato de texto: colores, alineación y mucho más. Siéntase libre de usar y contribuir.
Solo para agregar a las respuestas anteriores que todos usan Console.WriteLine: para cambiar el color en la misma línea de texto, escriba, por ejemplo:
Console.Write("This test ");Console.BackgroundColor= bTestSuccess ?ConsoleColor.DarkGreen:ConsoleColor.Red;Console.ForegroundColor=ConsoleColor.White;Console.WriteLine((bTestSuccess ?"PASSED":"FAILED"));Console.ResetColor();
Sí, es posible de la siguiente manera. Estos colores se pueden usar en una aplicación de consola para ver algunos errores en color rojo, etc.
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
Aquí hay un método simple que escribí para escribir mensajes de consola con cambios de color en línea. Solo admite un color, pero se ajusta a mis necesidades.
// 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();}
Tomado de aquí .
fuente
Los comentarios anteriores son respuestas sólidas, sin embargo, tenga en cuenta que no son seguros para subprocesos. Si está escribiendo en la consola con varios subprocesos, el cambio de colores agregará una condición de carrera que puede crear una salida de aspecto extraño. Sin embargo, es fácil de solucionar:
fuente
Write
llamada no será confusa. Ver stackoverflow.com/questions/4812508/… . Es solo el orden de las llamadas de escritura que no es "seguro".Creé un pequeño complemento (disponible en NuGet ) que le permite agregar cualquier color (si es compatible con su terminal) a la salida de su consola, sin las limitaciones de las soluciones clásicas.
Funciona extendiendo el
String
objeto y la sintaxis es muy simple:Se admiten los colores de primer plano y de fondo.
fuente
Sí, es fácil y posible. Defina los primeros colores predeterminados.
Console.Clear()
Es importante para establecer nuevos colores de consola. Si no realiza este paso, puede ver los colores combinados cuando solicite valores conConsole.ReadLine()
.Luego puede cambiar los colores en cada impresión:
Cuando finalice su programa, recuerde restablecer los colores de la consola al finalizar:
Ahora con netcore tenemos otro problema si desea "preservar" la experiencia del Usuario porque los terminales tienen diferentes colores en cada Sistema Operativo.
Estoy haciendo una biblioteca que resuelve este problema con el formato de texto: colores, alineación y mucho más. Siéntase libre de usar y contribuir.
https://github.com/deinsoftware/colorify/ y también disponible como paquete NuGet
Colores para Windows / Linux (oscuro):
Colores para MacOS (claro):
fuente
Solo para agregar a las respuestas anteriores que todos usan
Console.WriteLine
: para cambiar el color en la misma línea de texto, escriba, por ejemplo:fuente
Sí, es posible de la siguiente manera. Estos colores se pueden usar en una aplicación de consola para ver algunos errores en color rojo, etc.
fuente
Aquí hay un método simple que escribí para escribir mensajes de consola con cambios de color en línea. Solo admite un color, pero se ajusta a mis necesidades.
fuente