Я пытаюсь установить Markerbackgrounds для плагина notepad ++. Я пишу так, чтобы некоторые строки были выделены. Цвета хранятся в виде целых чисел, которые преобразуются из Color.ToArgb():Scintillia background background, выходящий из другого цвета, чем ожидалось
int colour = Convert.ToInt32(Color.LightSkyBlue.ToArgb())
Из того, что я понимаю документации Scintillia она принимает только RGB цвета, поэтому я использую следующую функцию, чтобы вырезать Альфа часть из цвет. Это устанавливает цвет, но вместо синего цвета я становлюсь оранжевым, а не синим. Это правильный способ установить цвет фона маркера?
private static void DefineColor(int type, int colour)
{
string hexValue = colour.ToString("X");
hexValue = hexValue.Remove(0, 2);
//hexValue = "0x" + hexValue
int decValue = Convert.ToInt32(ColorTranslator.FromHtml(hexValue));
//int decValue = int.Parse("FF", System.Globalization.NumberStyles.AllowHexSpecifier);
Win32.SendMessage(PluginBase.nppData._scintillaMainHandle, SciMsg.SCI_MARKERDEFINE, type, (int)SciMsg.SC_MARK_BACKGROUND);
Win32.SendMessage(PluginBase.nppData._scintillaMainHandle, SciMsg.SCI_MARKERSETBACK, type, decValue);
Win32.SendMessage(PluginBase.nppData._scintillaMainHandle, SciMsg.SCI_MARKERSETFORE, type, 0);
}
спасибо. Scintillia использует BGR для представления своих цветов вместо RGB, вот где я ошибался. – Kithis