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

19

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

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

以下是我的意思举例: 背景仅覆盖文本的背景,而非整个控制台窗口

如您所见,白色背景只显示在文本后面,并未改变整个控制台窗口的颜色。

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


可能是更改C#控制台应用程序的背景颜色的重复问题。 - Athari
鉴于这个问题比所谓的重复问题旧,并且这个问题有一个已接受的答案,而新的问题没有,我不同意那种说法。我已经将“更改C#控制台应用程序的背景颜色”的问题(https://dev59.com/_2Uq5IYBdhLWcg3wF8nw)关闭为这个问题的重复。但是这个问题应该保持开放状态。 - NightOwl888
6个回答

45

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

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

Console.Clear();

Console.WriteLine("Hello World");

Console.ReadLine();

谢谢,虽然不是显而易见的答案,但它完全按照我想要的方式工作了!整个控制台窗口现在是白色的! - Alper

5

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

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

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

enter image description here


0
internal class Program
    {
        static void Main(string[] args)
        {
            Console.BackgroundColor = ConsoleColor.Red;
            Console.Clear();
            Array marks = Enum.GetValues(typeof(Mark));
            foreach (var mark in marks)
            {
                Console.WriteLine(mark);
                Console.BackgroundColor = ConsoleColor.Yellow;
            }

        }

    }

0

运行控制台可以控制颜色。实际上,您只是更改应用程序颜色属性的输出。

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

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

CMD /T:F[n color index]

颜色值

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

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


-3

控制台.ForegroundColor = ConsoleColor.White;


尝试在你的代码中添加一些描述。为什么你的解决方案有效?你的代码做了什么? - Md.Sukel Ali
你的回答不在代码块中,也没有任何描述。请考虑阅读规则。 - dpapadopoulos

-6
这将适用于您在第一个左大括号后插入它。
{
        system("cls");
        system("color f3");
}

您可以通过数字更改颜色,最多可达7个,例如f1、f2、f3、f4等。


抱歉,这是一个C#问题 :) 我给你点个踩,以免让其他人感到困惑。 - Arman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接