![]() |
#26 |
Участник
|
Для себя обнаружил, что цветовая гамма полосок на гриде зависит ещё от параметра стиля отображения в WinXP (Экран\Оформление\Окна и кнопки). Если выбран "Стиль WindowsXP" то грид в axapta смотрится вполне приемлемо, но если выбран "Классический стиль" - то грид отображается с контрастными серыми и белыми полосами. В случае "Классического стиля" цвет серых полосок задается системным цветом COLOR_INACTIVEBORDER, как уже написали в этой теме.
В принципе этот цвет можно изменить из axapta через WinAPI. Добавляем в класс WinAPI функцию X++: client static void setSysColor(int _sysColor, rgbint _r, rgbint _g, rgbint _b) { DLL dll = new DLL(#UserDLL); DLLFunction dllFunction = new DLLFunction(dll,'SetSysColors'); Binary rgb = new Binary(#offset4); Binary syscolor = new Binary(#offset4); ; syscolor.dWord(#Offset0,_sysColor); rgb.dWord(#Offset0, winapi::rgb2int(_r,_g,_b)); dllFunction.arg(ExtTypes::DWord, ExtTypes::Pointer, ExtTypes::Pointer); dllFunction.call(1, syscolor, rgb); } X++: static void setInactivBorderColor(Args _args) { #WinAPI ; WinAPI::setSysColor(#COLOR_INACTIVEBORDER, 250,250,250); } |
|
|
За это сообщение автора поблагодарили: Logger (5), alex55 (3). |
Теги |
ax2009, grid, внешний вид, грид, зебра, интерфейс, полезное, цвет |
|
|