Преобразование цвета к ConsoleColor?

Что лучший способ состоит в том, чтобы преобразовать a System.Drawing.Color к подобному System.ConsoleColor?

19
задан Yves M. 7 January 2015 в 17:28
поделиться

1 ответ

К сожалению, несмотря на то, что консоль Windows может поддерживать RGB цвета, класс Console отображает только перечисление ConsoleColor, что значительно ограничивает возможные цвета, которые вы можете использовать. Если вы хотите, чтобы структура Цветов отображалась на "ближайший" ConsoleColor, это будет сложно.

Но если вы хотите, чтобы названный Цвет совпадал с соответствующим ConsoleColor, вы можете сделать карту типа:

var map = new Dictionary<Color, ConsoleColor>();
map[Color.Red] = ConsoleColor.Red;
map[Color.Blue] = ConsoleColor.Blue;
etc...

Или, если производительность не так важна, вы можете проехать по Строке в обе стороны. (Работает только для name colors)

var color = Enum.Parse(typeof(ConsoleColor), color.Name);

EDIT: Вот ссылка на вопрос о нахождении цвета "близость".

.
14
ответ дан 30 November 2019 в 01:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: