首頁 > 後端開發 > C++ > 如何在 C# 控制台應用程式中自訂預設調色板以外的文字顏色?

如何在 C# 控制台應用程式中自訂預設調色板以外的文字顏色?

Linda Hamilton
發布: 2024-12-31 12:39:09
原創
174 人瀏覽過

How Can I Customize Text Colors Beyond the Default Palette in C# Console Applications?

在C# 控制台應用程式中自訂文字顏色

在C# 控制台應用程式中自訂文字顏色時,ConsoleColor 枚舉提供的預設顏色集可能無法滿足您的要求。幸運的是,您可以定義自己的自訂顏色,例如橙色。

最初,[Console.ForegroundColor](https://docs.microsoft.com/en-us/dotnet/api/system.console .foregroundcolor?view=net-6.0) 屬性僅允許您從預在定義的顏色清單中進行選擇。要存取更多顏色,您需要深入研究高級程式設計技術。

探索自訂顏色的選項

系統限制:

不幸的是, C# 控制台類別不提供對使用十六進位值或RGB 分量分配自訂顏色的直接支援。可用顏色清單保持固定並且包括:

  • 黑色
  • 深藍色
  • 深綠色
  • 深青色
  • 深紅
  • 深洋紅
  • 深黃
  • 灰色
  • 深灰色
  • 藍色
  • 綠色
  • 青色
  • 紅色
  • 洋紅
  • 白色

使用第三者庫:

使用第三方庫:

或者,您可以考慮使用第三方庫來擴展控制台的功能並允許自訂著色。這些函式庫通常實作低階系統呼叫以直接與控制台緩衝區互動。
using Colorful.Console;

Console.WriteLine("This is now orange text", new Color(255, 128, 0));
登入後複製
登入後複製

例如,「Colorful.Console」NuGet 套件可讓您定義自訂顏色並在控制台應用程式中使用它們:

實作自訂著色:

如果您希望避免外部依賴,您可以可以按照以下步驟實作您自己的自訂著色方法:
  1. SetConsoleScreenBufferInfoEx:此API函數可讓您直接修改控制台緩衝區的顏色屬性。它需要使用特定於平台的結構(CONSOLE_SCREEN_BUFFER_INFO_EX 和 COLORREF)來定義和套用自訂顏色。
  2. GetConsoleScreenBufferInfoEx:使用此函數檢索目前控制台緩衝區信息,包括預設顏色屬性。
  3. 定義自訂 COLORREF結構:建立一個 COLORREF 結構,透過指定其 RGB 成分來表示您的自訂顏色。
  4. 設定自訂顏色屬性:將自訂 COLORREF 結構指派給所需的顏色屬性CONSOLE_SCREEN_BUFFER_INFO_EX 結構。
  5. 更新控制台Buffer:再次使用 SetConsoleScreenBufferInfoEx 函數將修改後的 CONSOLE_SCREEN_BUFFER_INFO_EX 結構套用到控制台緩衝區。

此方法涉及更複雜的編程,但可以更好地控制控制台的配色方案。下面的參考程式碼片段提供了此方法的完整實現:

using Colorful.Console;

Console.WriteLine("This is now orange text", new Color(255, 128, 0));
登入後複製
登入後複製

透過使用這些方法中的任何一個,您可以擴展C# 控制台應用程式中可用的調色板,並增強您的視覺吸引力文字輸出。

以上是如何在 C# 控制台應用程式中自訂預設調色板以外的文字顏色?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板