@ Rolloll tidak dalam cmd.exe default. Anda dapat mencoba menggunakan emulator Konsol, yang mendukung tweaking gambar latar belakang, tetapi tetap saja tidak bisa dilakukan secara terprogram.
Remigiusz Schoida
1 Ketika Anda sudah melakukan hal ini selama lebih dari 10 tahun dan hanya sekarang belajar apa yang mereka tahu 10 tahun yang lalu .... ini tidak pernah menjadi tua, ha.
Jester
116
classProgram{staticvoidMain(){Console.BackgroundColor=ConsoleColor.Blue;Console.ForegroundColor=ConsoleColor.White;Console.WriteLine("White on blue.");Console.WriteLine("Another line.");Console.ResetColor();}}
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:
Menulis dari banyak utas tanpa sinkronisasi akan menghasilkan keluaran yang kacau bahkan jika tidak ada perubahan warna: itu bukan hanya mengubah warna yang menyebabkan kondisi balapan
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:
Ini adalah kode yang sangat luar biasa. Saya menghargai opsi untuk menonaktifkan ekstensi seluruh warna pada dasarnya. Ini sesuai dengan penggunaan opsi warna di linux (ls –color = auto).
MianenCZ
13
Ya, mudah dan posible. Tentukan warna default pertama.
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.
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 backgroundConsole.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);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();}
Diambil dari sini .
sumber
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:
sumber
Write
panggilan 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
String
objek dan sintaksnya sangat sederhana:Warna foreground dan background didukung.
sumber
Ya, mudah dan posible. Tentukan warna default pertama.
Console.Clear()
itu penting untuk mengatur warna konsol baru. Jika Anda tidak melakukan langkah ini, Anda dapat melihat warna gabungan saat meminta nilaiConsole.ReadLine()
.Kemudian Anda dapat mengubah warna pada setiap cetakan:
Saat menyelesaikan program Anda, ingatlah untuk mengatur ulang warna konsol saat selesai:
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
Warna untuk Windows / Linux (Gelap):
Warna untuk MacOS (Cahaya):
sumber
Hanya untuk menambahkan jawaban di atas yang semuanya gunakan
Console.WriteLine
: untuk mengubah warna pada baris teks yang sama, tulis misalnya:sumber
Ya itu mungkin sebagai berikut. Warna-warna ini dapat digunakan dalam aplikasi konsol untuk melihat beberapa kesalahan dalam warna merah dll ...
sumber
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.
sumber