जवाबों:
हाँ। इस लेख को देखें । यहाँ एक उदाहरण है:
Console.BackgroundColor = ConsoleColor.Blue;
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine("White on blue.");
class Program
{
static void Main()
{
Console.BackgroundColor = ConsoleColor.Blue;
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine("White on blue.");
Console.WriteLine("Another line.");
Console.ResetColor();
}
}
यहां से ले गए ।
उपरोक्त टिप्पणियां दोनों ठोस प्रतिक्रियाएं हैं, हालांकि ध्यान दें कि वे थ्रेड सुरक्षित नहीं हैं। यदि आप कई थ्रेड्स के साथ कंसोल पर लिख रहे हैं, तो रंग बदलने से एक दौड़ की स्थिति जुड़ जाएगी जो कुछ अजीब दिखने वाले आउटपुट बना सकती है। हालांकि इसे ठीक करना आसान है:
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/… देखें । यह केवल लिखने-पुकार का क्रम है जो "सुरक्षित" नहीं है।
मैंने एक छोटा सा प्लगइन बनाया है ( नुगेट पर उपलब्ध ) जो आपको क्लासिक कंसोल की सीमाओं के बिना, आपके कंसोल आउटपुट में किसी भी (यदि आपके टर्मिनल द्वारा समर्थित) रंग जोड़ने की अनुमति देता है ।
यह String
वस्तु का विस्तार करके काम करता है और वाक्य रचना बहुत सरल है:
"colorize me".Pastel("#1E90FF");
अग्रभूमि और पृष्ठभूमि रंग दोनों का समर्थन किया जाता है।
हां, यह आसान और सकारात्मक है। पहले डिफ़ॉल्ट रंगों को परिभाषित करें।
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 के साथ एक और समस्या है क्योंकि टर्मिनल प्रत्येक ऑपरेटिव सिस्टम पर अलग-अलग रंग का है।
मैं एक ऐसी लाइब्रेरी बना रहा हूँ जो इस समस्या को टेक्स्ट फॉर्मेट: रंग, अलाइनमेंट और बहुत कुछ के साथ हल करती है। उपयोग और योगदान के लिए स्वतंत्र महसूस करें।
https://github.com/deinsoftware/colorify/ और NuGet पैकेज के रूप में भी उपलब्ध है
बस उपरोक्त सभी उत्तरों को जोड़ने के लिए 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();
}