Как вы можете получить alternatingItemColors для правильной работы в spark MXDataGridItemRenderer? - PullRequest
0 голосов
/ 03 мая 2011

Я пытаюсь установить 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>

1 Ответ

1 голос
/ 05 июля 2011

Это может быть немного поздно, так как это сообщение за три месяца, но если вы все еще ищете ответ ... похоже, что это может быть проблемой:

alternatingItemColors="#FFFFFF, #000000"

должно быть:

alternatingItemColors="[#FFFFFF, #000000]"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...