C# 콘솔 애플리케이션의 사용자 정의 색상
C# 콘솔 애플리케이션에서 기본 콘솔 색상 이외의 글꼴 색상을 사용자 정의하는 기능은 중요한 기능입니다. . 안타깝게도 사용 가능한 색상 목록이 제한되어 있으며 원하는 주황색 색상이 없습니다.
사용자 정의 색상에 사용 가능한 옵션
제공된 색상 목록은 지원되는 공식 세트입니다. 콘솔을 통해 사용자 정의 색상을 얻을 수 있는 방법이 있습니다:
프로그래밍 방식으로 콘솔 색상 변경
방법을 선택한 후 사용자 정의 색상 지원을 위해 C#에서 색상 변경을 구현할 수 있습니다. 프로그램:
외부 라이브러리 방법:
PINVOKE 메서드:
PINVOKE를 사용한 특정 구현
제공된 코드 스니펫은 PINVOKE 메서드를 사용하여 다음을 포함하여 사용자 정의 색상을 설정하는 방법을 보여줍니다. 주황색:
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(); } }
이 방법을 사용하면 주황색을 포함하여 원하는 색상을 콘솔의 전경색 또는 배경색으로 설정할 수 있어 C# 콘솔 애플리케이션에서 더욱 풍부하고 사용자 정의 가능한 사용자 환경을 제공할 수 있습니다.
위 내용은 C# 콘솔 애플리케이션에 주황색과 같은 사용자 지정 색상을 추가하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!