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

发布于 12-06 03:03 字数 603 浏览 0 评论 0原文

在 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

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

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

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

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

In C#, the console has properties that can be used to change the background color of the console, and the foreground (text) color of the console.

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

The issue is that background color applies only where text is written, not to free space.

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

Now, with the above code, it does indeed turn the text blue, but it only turns the background of the text white, instead of the entire console window's background.

Here's an example of what I mean:
The background only covers the background of the text, not of the entire console window

As you can see, the white background only displays behind the text, and does not change the color of the entire console window.

How do I change the color of the entire console window?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

半岛未凉2024-12-13 03:03:10

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

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

Console.Clear();

Console.WriteLine("Hello World");

Console.ReadLine();

You need to clear the console window AFTER setting the colors but BEFORE you write the text...

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

Console.Clear();

Console.WriteLine("Hello World");

Console.ReadLine();
惜醉颜2024-12-13 03:03:10

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

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

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

在此处输入图像描述

Pardon the shameless self-promotion, but I've created a small plugin (available on NuGet) that allows you to add any (if supported by your terminal) color to your console output, without the limitations of the classic solutions.

It works by extending the String object, and the syntax is very simple:

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

enter image description here

○愚か者の日2024-12-13 03:03:10

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

更改整体背景颜色很简单:
单击“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

The running console controls the colors. You're essentially only changing the output of your application's color properties.

It's simple for changing the overall background color:
Click on the 'C:\' icon
Select Properties and choose the Colors tab.

Now if you're wanting to do this programmatically, you'll want to launch you're own window:

CMD /T:F[n color index]

Color Value

Black 0
Blue 1
Green 2
Aqua 3
Red 4
Purple 5
Greenish Yellow 6
Light Gray 7
Gray 8
Light Blue 9
Light Green A
Light Aqua B
Light Red C
Light Purple D
Light Yellow E
Bright White F

Or if you're using PowerShell, refer to this TechNet article: http://technet.microsoft.com/en-us/library/ee156814.aspx

佞臣2024-12-13 03:03:10
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;
            }

        }

    }
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;
            }

        }

    }
浴红衣2024-12-13 03:03:10

Console.ForegroundColor = ConsoleColor.White;

Console.ForegroundColor = ConsoleColor.White;

故事未完2024-12-13 03:03:10

这对你有用,把它放在第一个左大括号之后

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

你可以按最多7个数字更改颜色,我认为例如 f1,f2,f3,f4... 。

This will work for you put it after your first open brace

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

You can change the colors by number up to 7 I think example f1,f2,f3,f4... .

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文