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

时间:2011-09-23 03:55:36

标签: c# colors background console

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

Console.BackgroundColor // the background color
Console.ForegroundColor // the foreground/text color

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

Console.BackgroundColor = ConsoleColor.White; // background color is white
Console.ForegroundColor = ConsoleColor.Blue;  // text color is blue

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

以下是我的意思的一个例子: The background only covers the background of the text, not of the entire console window

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

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

5 个答案:

答案 0 :(得分:36)

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

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

Console.Clear();

Console.WriteLine("Hello World");

Console.ReadLine();

答案 1 :(得分:1)

请原谅无耻的自我推广,但我创建了一个small plugin(可在NuGet上使用),可以让您添加任何(如果您的终端支持)为控制台输出添加颜色,而不受传统解决方案的限制。

它通过扩展String对象而起作用,语法非常简单:

"colorize me".Pastel("#1E90FF");

enter image description here

答案 2 :(得分:0)

正在运行的控制台控制颜色。您基本上只是更改应用程序颜色属性的输出。

更改整体背景颜色很简单: 单击“C:\”图标 选择“属性”,然后选择“颜色”选项卡。

现在,如果您想以编程方式执行此操作,那么您需要启动自己的窗口:

CMD /T:F[n color index]

颜色值

黑色0 蓝色1 绿色2 Aqua 3 红色4 紫色5 绿黄色6 浅灰色7 灰色8 浅蓝色9 浅绿色A. Light Aqua B 浅红色C. 浅紫色D. 浅黄色E. 亮白F

或者,如果您使用的是PowerShell,请参阅此TechNet文章:http://technet.microsoft.com/en-us/library/ee156814.aspx

答案 3 :(得分:0)

Console.ForegroundColor = ConsoleColor.White;

答案 4 :(得分:-2)

这可以让你把它放在你的第一个开放式大括号之后

{
        system("cls");
        system("color f3");
}

你可以用数字改变颜色,最多7个我认为例子f1,f2,f3,f4 ......。