2013-05-31 3 views
0

У меня очень темный фон для моих сеток, поэтому мне нужно сделать все маркировки в заголовках белыми. Я смог сделать это со всеми, кроме значков стрелок в AdvancedDataGrid. http://flexvenom.wordpress.com/2007/12/04/howto-setting-a-custom-sortitemrenderer-to-the-advanceddatagrid/ имеет решение, но затем оно убивает порядковый номер сортировки. Как я могу просто сделать все в заголовке (кроме фона) белым?Flex: Изменение цвета части сортировки AdvancedDataGrid

Я запускаю 3.5 SDK.

ответ

0

В конце концов, это было намного проще, чем то, что я пытался (с рендерингом элемента для рисования всей части), но это было довольно сложно, поскольку мне пришлось сделать 2 очень легких рендеринга. Я мог бы просто иметь порядковый номер, просто оставаясь одним цветом, но решил получить немного фантазии и иметь мышь над цветом и нормальным цветом.

Заголовок рендерер (ubicAdvancedDataGridHeaderRenderer.mxml) является:

<?xml version="1.0" encoding="utf-8"?> 
<mx:AdvancedDataGridHeaderRenderer xmlns:mx="http://www.adobe.com/2006/mxml" 
     color="{ColourGlobals.TEXT_AGAINST_DARK}" 
     mouseOver="bMouseOver = true" mouseOut="bMouseOver = false"> 
    <mx:Script><![CDATA[ 
     public var bMouseOver:Boolean = false; 
    ]]></mx:Script> 
</mx:AdvancedDataGridHeaderRenderer> 

то вроде рендер:

package assets.GridTools { 
import mx.controls.advancedDataGridClasses.AdvancedDataGridSortItemRenderer; 

public final class ubiAdvancedDataGridSortItemRenderer extends AdvancedDataGridSortItemRenderer { 
    override protected function commitProperties():void { 
     super.commitProperties(); 
     const oHeader:ubicAdvancedDataGridHeaderRenderer = owner as ubicAdvancedDataGridHeaderRenderer; 
     label.textColor = oHeader.bMouseOver ? ColourGlobals.DARK : ColourGlobals.TEXT_AGAINST_DARK; 
    } 
} 
} 

Не спрашивайте мой, почему я сделал один Flex, а другой. Это работает, поэтому не сломаться, я не собираюсь исправлять это.

Смежные вопросы