У меня есть статический метод, который я хочу использовать для изменения Console.BackgroundColor, если он работает под тестовой средой. Когда я разбиваю строку после изменения цвета, по-прежнему устанавливается значение «Черный».Цвет консоли Цвет фона Не меняющийся
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);
}
}
Чтобы покрасить весь фон, выполните 'Console.Clear();' после установки цвета фона. –
@IanH. ах, хорошо, хорошо, забыл об этом (я думаю, что помню, я знал это однажды). Thx, я добавлю его для полноты. –
API-интерфейсы Windows для вызова являются ['GetConsoleScreenBufferInfo'] (https://msdn.microsoft.com/en-us/library/ms683171), чтобы получить текущий' srWindow', для начальной координаты и количества ячеек символов для чтения через ['ReadConsoleOutputAttribute'] (https://msdn.microsoft.com/en-us/library/ms684968). Измените цвет фона для каждой ячейки и запишите данные атрибута через ['WriteConsoleOutputAttribute'] (https://msdn.microsoft.com/en-us/library/ms687407). – eryksun