Respuestas:
Si. Ver este artículo . Aquí hay un ejemplo a partir de ahí:
Console.BackgroundColor = ConsoleColor.Blue;
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine("White on blue.");
class Program
{
static void Main()
{
Console.BackgroundColor = ConsoleColor.Blue;
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine("White on blue.");
Console.WriteLine("Another line.");
Console.ResetColor();
}
}
Tomado de aquí .
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:
public class ConsoleWriter
{
private static object _MessageLock= new object();
public void WriteMessage(string message)
{
lock (_MessageLock)
{
Console.BackgroundColor = ConsoleColor.Red;
Console.WriteLine(message);
Console.ResetColor();
}
}
}
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:
"colorize me".Pastel("#1E90FF");
Se admiten los colores de primer plano y de fondo.
Sí, es fácil y posible. Defina los primeros colores predeterminados.
Console.BackgroundColor = ConsoleColor.Black;
Console.ForegroundColor = ConsoleColor.White;
Console.Clear();
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.
https://github.com/deinsoftware/colorify/ y también disponible como paquete NuGet
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 background
Console.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);
static void WriteColor(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();
}