Я пытаюсь установить alternatingItemColors для пользовательского MXDataGridItemRenderer, и, похоже, ничего не работает. Я пробовал каждую комбинацию установки свойства, которое я могу придумать, от приложения до dataGrid, для средства визуализации, с каждой комбинацией autoDrawBackground, установленной в true или false, но без удачи. В конечном счете, я собираюсь использовать пользовательский itemRenderer, который имеет набор полупрозрачных примитивов за меткой, с alternatingItemColors, чтобы сделать строки более удобочитаемыми, но при этом стиль пользовательского средства визуализации остается неизменным. Любые предложения будут оценены.
Спасибо,
~ Benny
Хорошо, я не привык к форматированию, публикации ответов и так далее, но я просто добавлю исходное сообщение, надеюсь, это будет хорошо для всех ...
Итак, снова ItemRenderer:
<s:MXDataGridItemRenderer
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
focusEnabled="true"
minWidth="25" minHeight="25"
>
<!--- States -->
<s:states>
<s:State name="normal" />
<s:State name="hovered" />
<s:State name="selected"/>
<s:State name="disabled" />
</s:states>
<!--- TransparencyGroup_(=(-->
<s:Group
top="0" right="0" bottom="0" left="0"
alpha="0.7"
>
<!--- BaseRectOuter -->
<s:Rect
radiusX="5" radiusY="5"
top="0" right="0" bottom="0" left="0"
>
<s:fill>
<s:LinearGradient rotation="90">
<s:GradientEntry
color="0x333333"
/>
<s:GradientEntry
color="0x121212"
/>
</s:LinearGradient>
</s:fill>
</s:Rect>
<!--- BaseRectInner -->
<s:Rect
radiusX="5" radiusY="5"
top="1" right="0" bottom="1" left="0"
>
<s:fill>
<s:LinearGradient rotation="90">
<s:GradientEntry
color="0x222222"
/>
<s:GradientEntry
color="0x444444"
/>
</s:LinearGradient>
</s:fill>
</s:Rect>
<!--- InnerRect -->
<s:Rect
radiusX="4" radiusY="4"
top="2" right="2" bottom="2" left="2"
>
<s:fill>
<s:LinearGradient rotation="90">
<s:GradientEntry
color="0x000"
color.hovered="0x105562"
/>
<s:GradientEntry
color="0x333333"
color.selected="0x105562"
/>
</s:LinearGradient>
</s:fill>
</s:Rect>
<!--- InnerStroke -->
<s:Rect
radiusX="4" radiusY="4"
top="1" right="2" bottom="1" left="2"
>
<s:stroke>
<s:LinearGradientStroke rotation="90" weight="1">
<s:GradientEntry
color="0x000"
color.selected="0xCCCDDD"
/>
<s:GradientEntry
color="0x666666"
color.selected="0x000"
alpha="0.6"
/>
</s:LinearGradientStroke>
</s:stroke>
</s:Rect>
</s:Group>
<!--- _)=)-->
<!--- Label -->
<s:Label
id="lblData"
text="{dataGridListData.label}"
fontSize="12"
color="0xFFFFFC"
height="12"
left="12" right="12"
trackingLeft="20%"
verticalCenter="0"
mouseEnabled="false"
/>
</s:MXDataGridItemRenderer>
А вот DataGrid:
<mx:DataGrid
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
rowHeight="30"
headerHeight="30"
fontFamily="Times New Roman"
fontSize="14"
textAlign="center"
paddingTop="2" paddingRight="0"
paddingBottom="2" paddingLeft="0"
verticalScrollPolicy="auto"
borderVisible="false"
dropShadowVisible="false"
rollOverColor="#01292B"
selectionColor="#000000"
chromeColor="#1D3A40"
alternatingItemColors="#FFFFFF, #000000"
>
<fx:Script>
<![CDATA[
import b_renderers.DGR_NameCol_01;
import b_renderers.DGItemRenderer_02;
import b_renderers.HeaderRenderer_01;
]]>
</fx:Script>
<mx:columns>
<mx:DataGridColumn
itemRenderer="b_renderers.DGR_NameCol_01"
headerRenderer="b_renderers.HeaderRenderer_01"
headerText="(|_ Name _|)"
dataField="name"
sortable="false"
width="285"
/>
<mx:DataGridColumn
itemRenderer="b_renderers.DGItemRenderer_02"
headerRenderer="b_renderers.HeaderRenderer_01"
headerText="Time"
dataField="time"
width="65"
/>
<mx:DataGridColumn
itemRenderer="b_renderers.DGItemRenderer_02"
headerRenderer="b_renderers.HeaderRenderer_01"
headerText="-| Genre |-"
dataField="genre"
width="165"
/>
</mx:columns>
</mx:DataGrid>