@RollRoll nicht in der Standard-cmd.exe. Sie können versuchen, einen Konsolenemulator zu verwenden, der das Anpassen von Hintergrundbildern unterstützt. Dies kann jedoch ohnehin nicht programmgesteuert durchgeführt werden.
Remigiusz Schoida
1 Wenn Sie schon seit mehr als 10 Jahren das Zeug zu tun und gerade jetzt gelernt , was sie vor 10 Jahren wussten .... das wird niemals alt, ha.
Jester
114
classProgram{staticvoidMain(){Console.BackgroundColor=ConsoleColor.Blue;Console.ForegroundColor=ConsoleColor.White;Console.WriteLine("White on blue.");Console.WriteLine("Another line.");Console.ResetColor();}}
Die obigen Kommentare sind beide solide Antworten. Beachten Sie jedoch, dass sie nicht threadsicher sind. Wenn Sie mit mehreren Threads auf die Konsole schreiben, wird durch Ändern der Farben eine Race-Bedingung hinzugefügt, die zu einer seltsam aussehenden Ausgabe führen kann. Es ist jedoch einfach zu beheben:
Das Schreiben aus mehreren Threads ohne Synchronisation führt zu einer verstümmelten Ausgabe, auch wenn keine Farbänderungen vorliegen: Es ist nicht nur das Ändern der Farben, das eine Rennbedingung verursacht
Joe,
6
@ Joe Ein einzelner WriteAnruf wird nicht verstümmelt. Siehe stackoverflow.com/questions/4812508/… . Es ist nur die Reihenfolge der Schreibaufrufe, die nicht "sicher" ist.
BatteryBackupUnit
27
Ich habe ein kleines Plugin (verfügbar auf NuGet ) erstellt, mit dem Sie Ihrer Konsolenausgabe eine beliebige Farbe hinzufügen können (sofern dies von Ihrem Terminal unterstützt wird), ohne die Einschränkungen der klassischen Lösungen.
Es funktioniert durch Erweitern des StringObjekts und die Syntax ist sehr einfach:
"colorize me".Pastel("#1E90FF");
Sowohl Vordergrund- als auch Hintergrundfarben werden unterstützt.
Das ist wirklich ein erstaunlicher Code. Ich schätze die Möglichkeit, die gesamte Farberweiterung grundsätzlich zu deaktivieren. Es eignet sich für die Verwendung der Farboption unter Linux (ls –color = auto).
MianenCZ
13
Ja, es ist einfach und möglich. Definieren Sie die ersten Standardfarben.
Console.Clear()Dies ist wichtig, um neue Konsolenfarben festzulegen. Wenn Sie diesen Schritt nicht ausführen, können Sie kombinierte Farben sehen, wenn Sie nach Werten mit fragen Console.ReadLine().
Dann können Sie die Farben auf jedem Druck ändern:
Console.BackgroundColor=ConsoleColor.Black;Console.ForegroundColor=ConsoleColor.Red;Console.WriteLine("Red text over black.");
Denken Sie nach Beendigung Ihres Programms daran, die Konsolenfarben beim Beenden zurückzusetzen:
Console.ResetColor();Console.Clear();
Jetzt mit Netcore haben wir ein weiteres Problem, wenn Sie die Benutzererfahrung "bewahren" möchten, da das Terminal auf jedem Betriebssystem unterschiedliche Farben hat.
Ich erstelle eine Bibliothek, die dieses Problem mit dem Textformat löst: Farben, Ausrichtung und vieles mehr. Fühlen Sie sich frei zu verwenden und beizutragen.
Ja, es ist wie folgt möglich. Diese Farben können in einer Konsolenanwendung verwendet werden, um einige Fehler in roter Farbe usw. anzuzeigen.
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
Hier ist eine einfache Methode, die ich zum Schreiben von Konsolennachrichten mit Inline-Farbänderungen geschrieben habe. Es unterstützt nur eine Farbe, aber es entspricht meinen Bedürfnissen.
// 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();}
Von hier genommen .
quelle
Die obigen Kommentare sind beide solide Antworten. Beachten Sie jedoch, dass sie nicht threadsicher sind. Wenn Sie mit mehreren Threads auf die Konsole schreiben, wird durch Ändern der Farben eine Race-Bedingung hinzugefügt, die zu einer seltsam aussehenden Ausgabe führen kann. Es ist jedoch einfach zu beheben:
quelle
Write
Anruf wird nicht verstümmelt. Siehe stackoverflow.com/questions/4812508/… . Es ist nur die Reihenfolge der Schreibaufrufe, die nicht "sicher" ist.Ich habe ein kleines Plugin (verfügbar auf NuGet ) erstellt, mit dem Sie Ihrer Konsolenausgabe eine beliebige Farbe hinzufügen können (sofern dies von Ihrem Terminal unterstützt wird), ohne die Einschränkungen der klassischen Lösungen.
Es funktioniert durch Erweitern des
String
Objekts und die Syntax ist sehr einfach:Sowohl Vordergrund- als auch Hintergrundfarben werden unterstützt.
quelle
Ja, es ist einfach und möglich. Definieren Sie die ersten Standardfarben.
Console.Clear()
Dies ist wichtig, um neue Konsolenfarben festzulegen. Wenn Sie diesen Schritt nicht ausführen, können Sie kombinierte Farben sehen, wenn Sie nach Werten mit fragenConsole.ReadLine()
.Dann können Sie die Farben auf jedem Druck ändern:
Denken Sie nach Beendigung Ihres Programms daran, die Konsolenfarben beim Beenden zurückzusetzen:
Jetzt mit Netcore haben wir ein weiteres Problem, wenn Sie die Benutzererfahrung "bewahren" möchten, da das Terminal auf jedem Betriebssystem unterschiedliche Farben hat.
Ich erstelle eine Bibliothek, die dieses Problem mit dem Textformat löst: Farben, Ausrichtung und vieles mehr. Fühlen Sie sich frei zu verwenden und beizutragen.
https://github.com/deinsoftware/colorify/ und auch als NuGet-Paket verfügbar
Farben für Windows / Linux (Dunkel):
Farben für MacOS (Light):
quelle
Um die obigen Antworten zu ergänzen, die alle verwenden
Console.WriteLine
: Um die Farbe in derselben Textzeile zu ändern, schreiben Sie zum Beispiel:quelle
Ja, es ist wie folgt möglich. Diese Farben können in einer Konsolenanwendung verwendet werden, um einige Fehler in roter Farbe usw. anzuzeigen.
quelle
Hier ist eine einfache Methode, die ich zum Schreiben von Konsolennachrichten mit Inline-Farbänderungen geschrieben habe. Es unterstützt nur eine Farbe, aber es entspricht meinen Bedürfnissen.
quelle