Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya boleh menambah warna tersuai, seperti oren, pada aplikasi konsol C# saya?
Warna Tersuai dalam Aplikasi Konsol C#
Dalam aplikasi konsol C#, keupayaan untuk menyesuaikan warna fon melebihi warna konsol lalai ialah ciri yang berharga . Malangnya, senarai warna yang tersedia adalah terhad, tiada warna oren yang diingini.
Pilihan yang Tersedia untuk Warna Tersuai
Manakala senarai warna yang disediakan adalah set rasmi yang disokong oleh konsol, terdapat cara untuk mencapai warna tersuai:
Menukar Warna Konsol Secara Pengaturcaraan
Setelah anda memilih kaedah untuk sokongan warna tersuai, anda boleh melaksanakan perubahan warna dalam C# anda program:
Kaedah Perpustakaan Luaran:
Kaedah PINVOKE:
Pelaksanaan Khusus Menggunakan PINVOKE
Kod yang disediakan coretan menunjukkan cara menggunakan kaedah PINVOKE untuk menetapkan warna tersuai, termasuk oren:
using System; using System.Drawing; using System.Runtime.InteropServices; public class CustomConsoleColors { [DllImport("kernel32.dll", SetLastError = true)] private static extern bool SetConsoleScreenBufferInfoEx(IntPtr hConsoleOutput, ref CONSOLE_SCREEN_BUFFER_INFO_EX csbe); [StructLayout(LayoutKind.Sequential)] private struct COORD { public short X; public short Y; } [StructLayout(LayoutKind.Sequential)] private struct SMALL_RECT { public short Left; public short Top; public short Right; public short Bottom; } [StructLayout(LayoutKind.Sequential)] private struct CONSOLE_SCREEN_BUFFER_INFO_EX { public int cbSize; public COORD dwSize; public COORD dwCursorPosition; public ushort wAttributes; public SMALL_RECT srWindow; public COORD dwMaximumWindowSize; public ushort wPopupAttributes; public bool bFullscreenSupported; public uint black; public uint darkBlue; public uint darkGreen; public uint darkCyan; public uint darkRed; public uint darkMagenta; public uint darkYellow; public uint gray; public uint darkGray; public uint blue; public uint green; public uint cyan; public uint red; public uint magenta; public uint yellow; public uint white; } public static void SetColor(ConsoleColor color, Color targetColor) { CONSOLE_SCREEN_BUFFER_INFO_EX csbe = new CONSOLE_SCREEN_BUFFER_INFO_EX(); csbe.cbSize = Marshal.SizeOf(csbe); IntPtr hConsoleOutput = GetStdHandle(-11); if (hConsoleOutput == new IntPtr(-1)) throw new Exception("Error retrieving console buffer handle"); if (!GetConsoleScreenBufferInfoEx(hConsoleOutput, ref csbe)) throw new Exception("Error retrieving console buffer info"); switch (color) { case ConsoleColor.Black: csbe.black = ColorTranslator.ToWin32(targetColor); break; case ConsoleColor.DarkBlue: csbe.darkBlue = ColorTranslator.ToWin32(targetColor); break; // ... (similar code for other colors) case ConsoleColor.DarkYellow: csbe.darkYellow = ColorTranslator.ToWin32(targetColor); break; case ConsoleColor.Gray: csbe.gray = ColorTranslator.ToWin32(targetColor); break; // ... (similar code for other colors) case ConsoleColor.White: csbe.white = ColorTranslator.ToWin32(targetColor); break; } if (!SetConsoleScreenBufferInfoEx(hConsoleOutput, ref csbe)) throw new Exception("Error setting console buffer info"); } public static void Main() { SetColor(ConsoleColor.DarkYellow, Color.Orange); Console.WriteLine("Custom orange color applied!"); Console.ReadLine(); } }
Dengan menggunakan kaedah ini, anda boleh menetapkan sebarang warna yang diingini, termasuk oren, sebagai warna latar depan atau latar belakang konsol, memberikan pengalaman pengguna yang lebih kaya dan boleh disesuaikan dalam aplikasi konsol C# anda.
Atas ialah kandungan terperinci Bagaimanakah saya boleh menambah warna tersuai, seperti oren, pada aplikasi konsol C# saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!