/// <inheritdoc/> public void WriteLine(string content, EPrintColor textColor, EPrintColor backgroundColor) { string value_textColor = ToColorValue_Text(textColor); string value_backgroundColor = ToColorValue_BackgroundColor(backgroundColor); string mergeContnet = MergeContentAndColorFormat(content, value_textColor, value_backgroundColor); base.WriteLine(mergeContnet); }
private static void SetConsoleColor(EPrintColor textColor, EPrintColor backgroundColor) { var console_textColor = ToConsoleColor(textColor); if (console_textColor != null) { Console.ForegroundColor = (ConsoleColor)console_textColor; } var console_backgroundColor = ToConsoleColor(backgroundColor); if (console_backgroundColor != null) { Console.BackgroundColor = (ConsoleColor)console_backgroundColor; } }
private static string ToColorValue_BackgroundColor(EPrintColor printColor) { switch (printColor) { case EPrintColor.None: return(null); case EPrintColor.Black: return("40"); case EPrintColor.White: return("47"); case EPrintColor.Yellow: return("43"); case EPrintColor.Red: return("41"); case EPrintColor.Blue: return("44"); case EPrintColor.Purple: return("45"); case EPrintColor.Green: return("42"); default: throw new ArgumentOutOfRangeException(nameof(printColor), $"转为 Linux Shell 背景颜色, 无法解析: {printColor}"); } }
private static string ToColorValue_Text(EPrintColor printColor) { switch (printColor) { case EPrintColor.None: return(null); case EPrintColor.Black: return("30"); case EPrintColor.White: return("37"); case EPrintColor.Yellow: return("33"); case EPrintColor.Red: return("31"); case EPrintColor.Blue: return("34"); case EPrintColor.Purple: return("35"); case EPrintColor.Green: return("32"); default: throw new ArgumentOutOfRangeException(nameof(printColor), $"转为 Linux Shell 文本颜色, 无法解析: {printColor}"); } }
private static ConsoleColor?ToConsoleColor(EPrintColor printColor) { switch (printColor) { case EPrintColor.None: return(null); case EPrintColor.Black: return(ConsoleColor.Black); case EPrintColor.White: return(ConsoleColor.White); case EPrintColor.Yellow: return(ConsoleColor.Yellow); case EPrintColor.Red: return(ConsoleColor.Red); case EPrintColor.Blue: return(ConsoleColor.Blue); case EPrintColor.Purple: return(ConsoleColor.Magenta); case EPrintColor.Green: return(ConsoleColor.Green); default: throw new ArgumentOutOfRangeException(nameof(printColor), $"转为 Window 控制台颜色, 无法解析: {printColor}"); } }
/// <inheritdoc/> public void WriteLine(string content, EPrintColor textColor, EPrintColor backgroundColor) { SetConsoleColor(textColor, backgroundColor); base.WriteLine(content); Console.ResetColor(); }
/// <summary> /// 默认黑底, 写入一行内容 /// </summary> /// <param name="printColor">打印输出接口含有颜色项</param> /// <param name="content">消息内容</param> /// <param name="textColor">文本内容颜色</param> public static void WriteLine(this IPrintColor printColor, string content, EPrintColor textColor) { printColor.WriteLine(content, textColor, EPrintColor.None); }