0
我正在嘗試爲記事本++插件設置Markerbackgrounds我正在寫這樣某些行可以突出顯示。顏色被存儲爲從Color.ToArgb()轉換整數:Scintillia標記背景出現不同於預期的顏色
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 2011-12-16 09:40:27