控制台颜色背景颜色不变

Console Color Background Color Not Changing

我有一个静态方法,如果它在测试环境下是 运行,我想用它来更改 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.BackgroundColor不改变整个控制台的背景颜色window。它只会更改 您设置该颜色后要写入的文本的背景颜色。

因此您的输出 Console.WriteLine(" &&&" + err); 现在将使用 DarkRed 背景编写:

正如 Ian H. 在评论中指出的那样,要将整个控制台 window 的背景设置为所需的颜色调用

Console.Clear();

更改颜色后。但是当然这会删除您之前写的所有内容,您可能不想要这些内容。