답변:
예. 이 기사를 참조 하십시오 . 다음은 그 예입니다.
Console.BackgroundColor = ConsoleColor.Blue;
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine("White on blue.");
위의 의견은 모두 확실한 반응이지만 스레드 안전하지는 않습니다. 여러 스레드를 사용하여 콘솔에 쓰는 경우 색상을 변경하면 경이로운 출력이 생길 수있는 경쟁 조건이 추가됩니다. 그래도 고치는 것은 간단합니다.
public class ConsoleWriter
{
private static object _MessageLock= new object();
public void WriteMessage(string message)
{
lock (_MessageLock)
{
Console.BackgroundColor = ConsoleColor.Red;
Console.WriteLine(message);
Console.ResetColor();
}
}
}
Write
통화가 깨지지 않습니다 . stackoverflow.com/questions/4812508/…을 참조하십시오 . "안전"하지 않은 쓰기 호출의 순서 일뿐입니다.
예, 쉽고 가능합니다. 첫 번째 기본 색상을 정의하십시오.
Console.BackgroundColor = ConsoleColor.Black;
Console.ForegroundColor = ConsoleColor.White;
Console.Clear();
Console.Clear()
새로운 콘솔 색상을 설정하는 것이 중요합니다. 이 단계를 수행하지 않으면로 값을 요청할 때 결합 된 색상을 볼 수 있습니다 Console.ReadLine()
.
그런 다음 각 인쇄물의 색상을 변경할 수 있습니다.
Console.BackgroundColor = ConsoleColor.Black;
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Red text over black.");
프로그램을 완료하면 완료시 콘솔 색상 재설정을 기억하십시오.
Console.ResetColor();
Console.Clear();
netcore를 사용하면 터미널마다 각 운영 체제마다 색상이 다르기 때문에 사용자 환경을 "보존"하려는 경우 또 다른 문제가 있습니다.
텍스트 형식 (색상, 정렬 등) 으로이 문제를 해결하는 라이브러리를 만들고 있습니다. 자유롭게 사용하고 기여하십시오.
위의 답변에 모두 사용 Console.WriteLine
: 같은 텍스트 줄에서 색상을 변경 하려면 다음과 같이 작성하십시오.
Console.Write("This test ");
Console.BackgroundColor = bTestSuccess ? ConsoleColor.DarkGreen : ConsoleColor.Red;
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine((bTestSuccess ? "PASSED" : "FAILED"));
Console.ResetColor();
예, 다음과 같이 가능합니다. 이 색상은 콘솔 응용 프로그램에서 빨간색 등의 일부 오류를 볼 수 있습니다.
Console.BackgroundColor = ConsoleColor.Blue;
Console.ForegroundColor = ConsoleColor.White;//after this line every text will be white on blue background
Console.WriteLine("White on blue.");
Console.WriteLine("Another line.");
Console.ResetColor();//reset to the defoult colour
다음은 인라인 색상 변경으로 콘솔 메시지를 작성하기 위해 작성한 간단한 방법입니다. 하나의 색상 만 지원하지만 내 요구에 맞습니다.
// usage: WriteColor("This is my [message] with inline [color] changes.", ConsoleColor.Yellow);
static void WriteColor(string message, ConsoleColor color)
{
var pieces = Regex.Split(message, @"(\[[^\]]*\])");
for(int i=0;i<pieces.Length;i++)
{
string piece = pieces[i];
if (piece.StartsWith("[") && piece.EndsWith("]"))
{
Console.ForegroundColor = color;
piece = piece.Substring(1,piece.Length-2);
}
Console.Write(piece);
Console.ResetColor();
}
Console.WriteLine();
}