【问题标题】:How do I change the full background color of the console window in C#?如何在 C# 中更改控制台窗口的完整背景颜色?
【发布时间】:2011-11-23 08:31:39
【问题描述】:

在 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# colors background console


【解决方案1】:

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

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

Console.Clear();

Console.WriteLine("Hello World");

Console.ReadLine();

【讨论】:

  • 谢谢,不是一个明显的答案,但它也完全按照我想要的方式工作!整个控制台窗口现在是白色的!
【解决方案2】:

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

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

    这对你把它放在你的第一个开括号之后有用

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

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

    【讨论】:

    • 对不起,伙计,这是一个 c# 问题 :) 投反对票只是为了不混淆其他人。
    【解决方案4】:

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

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

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

    【讨论】:

      【解决方案5】:

      Console.ForegroundColor = ConsoleColor.White;

      【讨论】:

      • 尝试在您的代码中添加一些描述。为什么您的解决方案有效?你的代码是做什么的?
      • 您的答案超出代码块且没有任何描述。请考虑阅读规则。
      【解决方案6】:
      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;
                  }
      
              }
      
          }
      

      【讨论】:

        猜你喜欢
        • 2011-09-21
        • 1970-01-01
        • 2015-05-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多