Jawaban:
Iya. Lihat artikel ini . Berikut ini contoh dari sana:
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();
}
}
Diambil dari sini .
Komentar di atas sama-sama respons yang solid, namun perhatikan bahwa komentar tersebut tidak aman. Jika Anda menulis ke konsol dengan banyak utas, mengubah warna akan menambah kondisi balapan yang dapat menghasilkan keluaran yang tampak aneh. Sangat mudah untuk memperbaikinya:
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();
}
}
}
Writepanggilan tidak akan kacau. Lihat stackoverflow.com/questions/4812508/… . Hanya urutan dari panggilan tulis yang tidak "aman".
Saya telah membuat sebuah plugin kecil (tersedia di NuGet ) yang memungkinkan Anda untuk menambahkan warna apa pun (jika didukung oleh terminal Anda) ke output konsol Anda, tanpa batasan dari solusi klasik.
Ia bekerja dengan memperluas Stringobjek dan sintaksnya sangat sederhana:
"colorize me".Pastel("#1E90FF");
Warna foreground dan background didukung.
Ya, mudah dan posible. Tentukan warna default pertama.
Console.BackgroundColor = ConsoleColor.Black;
Console.ForegroundColor = ConsoleColor.White;
Console.Clear();
Console.Clear()itu penting untuk mengatur warna konsol baru. Jika Anda tidak melakukan langkah ini, Anda dapat melihat warna gabungan saat meminta nilai Console.ReadLine().
Kemudian Anda dapat mengubah warna pada setiap cetakan:
Console.BackgroundColor = ConsoleColor.Black;
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Red text over black.");
Saat menyelesaikan program Anda, ingatlah untuk mengatur ulang warna konsol saat selesai:
Console.ResetColor();
Console.Clear();
Sekarang dengan netcore kami memiliki masalah lain jika Anda ingin "mempertahankan" pengalaman Pengguna karena terminal memiliki warna yang berbeda pada setiap Sistem Operatif.
Saya sedang membuat perpustakaan yang memecahkan masalah ini dengan Format Teks: warna, perataan dan banyak lagi. Jangan ragu untuk menggunakan dan berkontribusi.
https://github.com/deinsoftware/colorify/ dan juga tersedia sebagai paket NuGet
Hanya untuk menambahkan jawaban di atas yang semuanya gunakan Console.WriteLine: untuk mengubah warna pada baris teks yang sama, tulis misalnya:
Console.Write("This test ");
Console.BackgroundColor = bTestSuccess ? ConsoleColor.DarkGreen : ConsoleColor.Red;
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine((bTestSuccess ? "PASSED" : "FAILED"));
Console.ResetColor();
Ya itu mungkin sebagai berikut. Warna-warna ini dapat digunakan dalam aplikasi konsol untuk melihat beberapa kesalahan dalam warna merah dll ...
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
Berikut adalah metode sederhana yang saya tulis untuk menulis pesan konsol dengan perubahan warna sebaris. Ini hanya mendukung satu warna, tetapi sesuai dengan kebutuhan saya.
// 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();
}