C# Цвет в RGB неправильный результатC#

Место общения программистов C#
Ответить
Anonymous
 C# Цвет в RGB неправильный результат

Сообщение Anonymous »

У меня есть функция на C#:

Код: Выделить всё

private string strColorToHexRGB(Color clr) {
int intClr = clr.ToArgb();
string strRGB = string.Format("#{0:X2}{0:X2}{0:X2}"
, (byte)(intClr >> 16) & 0xff
, (byte)(intClr >> 8) & 0xff
, (byte)(intClr & 0xff));
return strRGB;
}
Это работает нормально, однако у меня есть панель в форме, пример вызова вышеуказанного с помощью панели:

Код: Выделить всё

Func
 PanelToJsonObject
= delegate (Panel pnlControl) {
JsonObject objpnlData = new JsonObject();
objpnlData.Add(mcstrJSONbackColor, strColorToHexRGB(pnlControl.BackColor));
objpnlData.Add(mcstrJSONname, pnlControl.Name);
objpnlData.Add(mcstrJSONtype, mcstrCtrlPanel);
return objpnlData;
};
Panel pnlCtrl = ctrl as Panel;
if (pnlCtrl.InvokeRequired == true) {
pnlCtrl.Invoke((MethodInvoker)delegate {
objChild = PanelToJsonObject(pnlCtrl);
});
} else {
objChild = PanelToJsonObject(pnlCtrl);
}
Приложение является многопоточным, следовательно, используется делегат. Используя отладчик, я вырезал и вставил ниже:

Код: Выделить всё

BackColor   "{Name=ff00ff00, ARGB=(255, 0, 255, 0)}"    System.Drawing.Color
Я ожидал, что это приведет к #00ff00, однако вместо этого я получаю #000000, чем это можно объяснить?

Подробнее здесь: https://stackoverflow.com/questions/792 ... ong-result
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»