Console.BackgroundColor Propiedad

Definición

Obtiene o establece el color de fondo de la consola.

public:
 static property ConsoleColor BackgroundColor { ConsoleColor get(); void set(ConsoleColor value); };
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public static ConsoleColor BackgroundColor { get; set; }
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
[System.Runtime.Versioning.UnsupportedOSPlatform("android")]
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static ConsoleColor BackgroundColor { get; set; }
public static ConsoleColor BackgroundColor { get; set; }
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
member this.BackgroundColor : ConsoleColor with get, set
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("android")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
member this.BackgroundColor : ConsoleColor with get, set
member this.BackgroundColor : ConsoleColor with get, set
Public Shared Property BackgroundColor As ConsoleColor

Valor de propiedad

ConsoleColor

Valor que especifica el color de fondo de la consola; es decir, el color que aparece detrás de cada carácter. El valor predeterminado es negro.

Atributos

Excepciones

El color especificado en una operación de establecimiento no es un miembro válido de ConsoleColor.

El usuario no tiene permiso para realizar esta acción.

Error de E/S.

Ejemplos

En el ejemplo siguiente se guardan los valores de la enumeración ConsoleColor en una matriz y se almacenan los valores actuales de las propiedades BackgroundColor y ForegroundColor en las variables. A continuación, cambia el color de primer plano para cada color de la enumeración ConsoleColor, excepto el color que coincida con el fondo actual, y cambia el color de fondo de cada color de la enumeración ConsoleColor excepto el color que coincida con el primer plano actual. (Si el color de primer plano es el mismo que el color de fondo, el texto no derá visible.) Por último, llama a al método ResetColor para restablecer los colores originale de la consola.

using System;

class Example
{
   public static void Main()
   {
      // Get an array with the values of ConsoleColor enumeration members.
      ConsoleColor[] colors = (ConsoleColor[]) ConsoleColor.GetValues(typeof(ConsoleColor));
      // Save the current background and foreground colors.
      ConsoleColor currentBackground = Console.BackgroundColor;
      ConsoleColor currentForeground = Console.ForegroundColor;

      // Display all foreground colors except the one that matches the background.
      Console.WriteLine("All the foreground colors except {0}, the background color:",
                        currentBackground);
      foreach (var color in colors) {
         if (color == currentBackground) continue;

         Console.ForegroundColor = color;
         Console.WriteLine("   The foreground color is {0}.", color);
      }
      Console.WriteLine();
      // Restore the foreground color.
      Console.ForegroundColor = currentForeground;

      // Display each background color except the one that matches the current foreground color.
      Console.WriteLine("All the background colors except {0}, the foreground color:",
                        currentForeground);
      foreach (var color in colors) {
         if (color == currentForeground) continue;

         Console.BackgroundColor = color;
         Console.WriteLine("   The background color is {0}.", color);
      }

      // Restore the original console colors.
      Console.ResetColor();
      Console.WriteLine("\nOriginal colors restored...");
   }
}
//The example displays output like the following:
//    All the foreground colors except DarkCyan, the background color:
//       The foreground color is Black.
//       The foreground color is DarkBlue.
//       The foreground color is DarkGreen.
//       The foreground color is DarkRed.
//       The foreground color is DarkMagenta.
//       The foreground color is DarkYellow.
//       The foreground color is Gray.
//       The foreground color is DarkGray.
//       The foreground color is Blue.
//       The foreground color is Green.
//       The foreground color is Cyan.
//       The foreground color is Red.
//       The foreground color is Magenta.
//       The foreground color is Yellow.
//       The foreground color is White.
//
//    All the background colors except White, the foreground color:
//       The background color is Black.
//       The background color is DarkBlue.
//       The background color is DarkGreen.
//       The background color is DarkCyan.
//       The background color is DarkRed.
//       The background color is DarkMagenta.
//       The background color is DarkYellow.
//       The background color is Gray.
//       The background color is DarkGray.
//       The background color is Blue.
//       The background color is Green.
//       The background color is Cyan.
//       The background color is Red.
//       The background color is Magenta.
//       The background color is Yellow.
//
//    Original colors restored...
open System

// Get an array with the values of ConsoleColor enumeration members.
let colors = ConsoleColor.GetValues<ConsoleColor>()

// Save the current background and foreground colors.
let currentBackground = Console.BackgroundColor
let currentForeground = Console.ForegroundColor

// Display all foreground colors except the one that matches the background.
printfn $"All the foreground colors except {currentBackground}, the background color:"

for color in colors do
    if color <> currentBackground then
        Console.ForegroundColor <- color
        printfn $"   The foreground color is {color}."
printfn ""

// Restore the foreground color.
Console.ForegroundColor <- currentForeground;

// Display each background color except the one that matches the current foreground color.
printfn $"All the background colors except {currentForeground}, the foreground color:"

for color in colors do
    if color <> currentForeground then
        Console.BackgroundColor <- color
        printfn $"   The background color is {color}."

// Restore the original console colors.
Console.ResetColor()
printfn "\nOriginal colors restored..."


//The example displays output like the following:
//    All the foreground colors except DarkCyan, the background color:
//       The foreground color is Black.
//       The foreground color is DarkBlue.
//       The foreground color is DarkGreen.
//       The foreground color is DarkRed.
//       The foreground color is DarkMagenta.
//       The foreground color is DarkYellow.
//       The foreground color is Gray.
//       The foreground color is DarkGray.
//       The foreground color is Blue.
//       The foreground color is Green.
//       The foreground color is Cyan.
//       The foreground color is Red.
//       The foreground color is Magenta.
//       The foreground color is Yellow.
//       The foreground color is White.
//
//    All the background colors except White, the foreground color:
//       The background color is Black.
//       The background color is DarkBlue.
//       The background color is DarkGreen.
//       The background color is DarkCyan.
//       The background color is DarkRed.
//       The background color is DarkMagenta.
//       The background color is DarkYellow.
//       The background color is Gray.
//       The background color is DarkGray.
//       The background color is Blue.
//       The background color is Green.
//       The background color is Cyan.
//       The background color is Red.
//       The background color is Magenta.
//       The background color is Yellow.
//
//    Original colors restored...
Public Module Example
   Public Sub Main()
      ' Get an array with the values of ConsoleColor enumeration members.
      Dim colors() As ConsoleColor = ConsoleColor.GetValues(GetType(ConsoleColor))
      ' Save the current background and foreground colors.
      Dim currentBackground As ConsoleColor = Console.BackgroundColor
      Dim currentForeground As ConsoleColor = Console.ForegroundColor
      
      ' Display all foreground colors except the one that matches the background.
      Console.WriteLine("All the foreground colors except {0}, the background color:",
                        currentBackground)
      For Each color In colors
         If color = currentBackground Then Continue For
          
         Console.ForegroundColor = color
         Console.WriteLine("   The foreground color is {0}.", color)
      Next 
      Console.WriteLine()
      
      ' Restore the foreground color.
      Console.ForegroundColor = currentForeground
      
      ' Display each background color except the one that matches the current foreground color.
      Console.WriteLine("All the background colors except {0}, the foreground color:",
                        currentForeground)
      For Each color In colors
         If color = currentForeground  then Continue For
         Console.BackgroundColor = color
         Console.WriteLine("   The background color is {0}.", color)
      Next
      ' Restore the original console colors.
      Console.ResetColor
      Console.WriteLine()
      Console.WriteLine("Original colors restored...")
   End Sub
End Module
'The example displays output like the following:
'       The background color is DarkCyan.
'       The background color is DarkRed.
'       The background color is DarkMagenta.
'       The background color is DarkYellow.
'       The background color is Gray.
'       The background color is DarkGray.
'       The background color is Blue.
'       The background color is Green.
'       The background color is Cyan.
'       The background color is Red.
'       The background color is Magenta.
'       The background color is Yellow.
'    
'    Original colors restored...

Comentarios

Un cambio en la propiedad afecta solo a la BackgroundColor salida escrita en celdas de caracteres individuales después de cambiar el color de fondo. Para cambiar el color de fondo de la ventana de consola en su conjunto, establezca la BackgroundColor propiedad y llame al Clear método . Esto se muestra en el ejemplo siguiente.

using System;

public class Example
{
   public static void Main()
   {
      WriteCharacterStrings(1, 26, true);
      Console.MoveBufferArea(0, Console.CursorTop - 10, 30, 1,
                             Console.CursorLeft, Console.CursorTop + 1);
      Console.CursorTop = Console.CursorTop + 3;
      Console.WriteLine("Press any key...");
      Console.ReadKey();

      Console.Clear();
      WriteCharacterStrings(1, 26, false);
   }

   private static void WriteCharacterStrings(int start, int end,
                                             bool changeColor)
   {
      for (int ctr = start; ctr <= end; ctr++) {
         if (changeColor)
            Console.BackgroundColor = (ConsoleColor) ((ctr - 1) % 16);

         Console.WriteLine(new String((char)(ctr + 64), 30));
      }
   }
}
open System

let writeCharacterStrings start end' changeColor =
    for i = start to end' do
        if changeColor then
            Console.BackgroundColor <- (i - 1) % 16 |> enum

        Console.WriteLine(String(char (i + 64), 30))

writeCharacterStrings 1 26 true
Console.MoveBufferArea(0, Console.CursorTop - 10, 30, 1, Console.CursorLeft, Console.CursorTop + 1)
Console.CursorTop <- Console.CursorTop + 3
Console.WriteLine "Press any key..."
Console.ReadKey() |> ignore

Console.Clear()
writeCharacterStrings 1 26 false
Module Example
   Public Sub Main()
      WriteCharacterStrings(1, 26, True)
      Console.MoveBufferArea(0, Console.CursorTop - 10, 30, 1, Console.CursorLeft, Console.CursorTop + 1)
      Console.CursorTop = Console.CursorTop + 3
      Console.WriteLine("Press any key...") : Console.ReadKey()

      Console.Clear()
      WriteCharacterStrings(1, 26, False)
   End Sub
   
   Private Sub WriteCharacterStrings(start As Integer, _end As Integer, 
                                     changeColor As Boolean)
      For ctr As Integer = start To _end
         If changeColor Then
            Console.BackgroundColor = CType((ctr - 1) Mod 16, ConsoleColor)
         End If      
         Console.WriteLine(New String(Convert.ToChar(ctr + 64), 30))
      Next   
   End Sub
End Module

Una operación get para una aplicación basada en Windows, en la que una consola no existe, devuelve ConsoleColor.Black. Los sistemas Unix no proporcionan ningún mecanismo general para capturar los colores de la consola actual. Debido a esto, BackgroundColor devuelve (ConsoleColor)-1 hasta que se establece de forma explícita (mediante el establecedor).

Se aplica a