Как изменить полный цвет фона в окне консоли на С#?

В С# консоль имеет свойства, которые можно использовать для изменения цвета фона в консоли и цвета переднего плана (текста) консоли.

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

Как вы можете видеть, белый фон отображается только за текстом и не меняет цвет всего окна консоли.

Как изменить цвет всего окна консоли?

Ответы

Ответ 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 Aqua 3 Красный 4 Фиолетовый 5 Зеленовато-желтый 6 Светло-серый 7 Серый 8 Светло-голубой 9 Светло-зеленый Свет Aqua B Светло-красный C Светло-фиолетовый D Светло-желтый E Яркий белый F

Или, если вы используете PowerShell, обратитесь к этой статье TechNet: http://technet.microsoft.com/en-us/library/ee156814.aspx

Ответ 3

Извините за бесстыдную саморекламу, но я создал небольшой плагин (доступный на NuGet), который позволяет вам добавлять любой (если поддерживается вашим терминалом) цвет к вашему выводу консоли, без ограничений классических решений.

Он работает путем расширения объекта String, и синтаксис очень прост:

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

enter image description here

Ответ 4

Это будет работать, если вы положите его после первой открытой скобки

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

Вы можете изменить цвета по номеру до 7 Я думаю, пример f1, f2, f3, f4....