控制台颜色背景颜色不变

Ant*_*yrd 1 .net c# unit-testing windows-console

我有一个静态方法,如果它在测试环境下运行,我想用它来更改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);
    }
}
Run Code Online (Sandbox Code Playgroud)

Ren*_*ogt 5

Console.BackgroundColor不会更改整个控制台窗口的背景颜色.它只会更改您设置该颜色要写入的文本的背景颜色.

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

在此输入图像描述

不幸的是,我不知道目前以编程方式更改整个控制台窗口颜色的方法.

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

Console.Clear();
Run Code Online (Sandbox Code Playgroud)

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