如何在C#中更改控制台窗口的完整背景颜色?

16 c# console background colors

在C#中,控制台具有可用于更改控制台背景颜色和控制台前景(文本)颜色的属性.

Console.BackgroundColor // the background color
Console.ForegroundColor // the foreground/text color
Run Code Online (Sandbox Code Playgroud)

问题是背景颜色仅适用于写入文本的位置,而不适用于自由空间.

Console.BackgroundColor = ConsoleColor.White; // background color is white
Console.ForegroundColor = ConsoleColor.Blue;  // text color is blue
Run Code Online (Sandbox Code Playgroud)

现在,使用上面的代码,它确实将文本变为蓝色,但它只将文本的背景变为白色,而不是整个控制台窗口的背景.

这是我的意思的一个例子: 背景仅涵盖文本的背景,而不是整个控制台窗口的背景

如您所见,白色背景仅显示在文本后面,并不会更改整个控制台窗口的颜色.

如何更改整个控制台窗口的颜色?

Rya*_*ord 36

您需要在设置颜色后清除控制台窗口,但在编写文本之前...

Console.ForegroundColor = ConsoleColor.Red;
Console.BackgroundColor = ConsoleColor.Green;

Console.Clear();

Console.WriteLine("Hello World");

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


sil*_*ire 5

请原谅无耻的自我推销,但我创建了一个小插件(在NuGet上可用),它允许您向控制台输出添加任何(如果您的终端支持)颜色,而不受经典解决方案的限制。

它通过扩展String对象来工作,语法非常简单:

"colorize me".Pastel("#1E90FF");
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述