Console.BackgroundColor 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取或设置控制台的背景色。
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
属性值
一个值,指定控制台的背景色;也就是显示在每个字符后面的颜色。 默认为黑色。
- 属性
例外
设置操作中指定的颜色不是 ConsoleColor 的有效成员。
用户没有执行此操作的权限。
出现 I/O 错误。
示例
下面的示例将枚举的值保存 ConsoleColor 到数组,并将和属性的当前值存储 BackgroundColor ForegroundColor 到变量中。 然后,它会将前景色更改为枚举中的每个颜色 ConsoleColor (除了与当前背景匹配的颜色),并且它会将背景色更改为枚举中的每个颜色, ConsoleColor 但与当前前景匹配的颜色除外。 (如果前景色与背景色相同,则不显示文本。 ) 最后,它会调用 ResetColor 方法来还原原始控制台颜色。
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...
注解
对属性所做的更改 BackgroundColor 只会影响在背景色更改后写入各个字符单元格的输出。 若要整体更改控制台窗口的背景色,请设置 BackgroundColor 属性并调用 Clear 方法。 下面的示例进行了这方面的演示。
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
对于基于 Windows 的应用程序(其中,控制台不存在)的 get 操作返回 ConsoleColor.Black 。
Unix 系统并不提供用于提取当前控制台颜色的任何常规机制。 因此,将 BackgroundColor 返回 (ConsoleColor)-1
直到使用 setter) 以显式方式设置 (。