Ich habe eine statische Methode, die ich verwenden möchte, um die Console.BackgroundColor zu ändern, wenn es in der Testumgebung ausgeführt wird. Wenn ich nach dem Ändern der Farbe auf der Linie breche, wird immer noch auf Schwarz gesetzt.Konsolenfarbe Hintergrundfarbe ändert sich nicht
public static void LogError(string err)
{
if (IsRunningFromMspec)
{
Console.BackgroundColor = ConsoleColor.DarkRed;
Console.WriteLine(" &&&" + err);
}
else if (MyTracer.MyLevelSwitch.TraceError && !string.IsNullOrEmpty(err))
{
Trace.TraceError(" &&& - " + err);
}
}
Um den gesamten Hintergrund zu malen, führen Sie 'Console.Clear();' nach dem Einstellen der Hintergrundfarbe aus. –
@IanH. Ach richtig, schön, habe ich vergessen (ich glaube ich erinnere mich, dass ich es einmal wusste). Thx, ich füge es der Vollständigkeit halber hinzu. –
Die Windows-APIs zum Aufrufen sind ['GetConsoleScreenBufferInfo'] (https://msdn.microsoft.com/en-us/library/ms683171), um das aktuelle' srWindow' für die Startkoordinate und die Anzahl der zu lesenden Zeichenzellen zu erhalten über ['ReadConsoleOutputAttribute'] (https://msdn.microsoft.com/en-us/library/ms684968). Ändern Sie die Hintergrundfarbe für jede Zelle und schreiben Sie die Attributdaten zurück über ['WriteConsoleOutputAttribute'] (https://msdn.microsoft.com/en-us/library/ms687407). – eryksun