代码之家  ›  专栏  ›  技术社区  ›  1.21 gigawatts

如何删除Spark DataGrid上的插入符号指示符

  •  0
  • 1.21 gigawatts  · 技术社区  · 13 年前

    我找不到一个简单的方法来删除或隐藏Spark DataGrid中的插入符号指示符,所以如果没有更好的方法,我会在这里发布解决方案。

    1 回复  |  直到 10 年前
        1
  •  1
  •   Pirkka Esko    12 年前

    这似乎奏效了。要隐藏插入符号Indiator,我们必须基于spark.skins.spark.DataGridSkin创建一个新的数据网格皮肤。然后在该皮肤中将笔划的alpha或矩形的alpha设置为0。

    方法1:

    百万毫升 :

    <s:DataGrid skinClass="view.skins.AbstractDataGridSkin"/>
    

    抽象数据网格皮肤 :

    <?xml version="1.0" encoding="utf-8"?>
    <spark:DataGridSkin 
        xmlns:fx="http://ns.adobe.com/mxml/2009" 
        xmlns:s="library://ns.adobe.com/flex/spark" 
        xmlns:mx="library://ns.adobe.com/flex/mx"
        xmlns:fb="http://ns.adobe.com/flashbuilder/2009"
        xmlns:spark="spark.skins.spark.*" 
        xmlns:skins="view.skins.*"
        >
        <fx:Component id="caretIndicator">
            <s:Rect implements="spark.components.gridClasses.IGridVisualElement" alpha="0">
                <fx:Script>
                    <![CDATA[
                        import spark.components.DataGrid;
                        import spark.components.Grid;
    
                        /**
                         * @private
                         */
                        public function prepareGridVisualElement(grid:Grid, rowIndex:int, columnIndex:int):void
                        {
    
                            const dataGrid:DataGrid = grid.dataGrid;
                            if (!dataGrid)
                                return;
    
                            const color:uint = dataGrid.getStyle("caretColor");
                            caretIndicatorFill.color = color;
                        }
                    ]]>
                </fx:Script>
    
                <s:stroke>
                    <!--- @private -->
                    <s:SolidColorStroke id="caretIndicatorFill" color="0x0167FF" weight="0" alpha="0"/>
                </s:stroke>
            </s:Rect>
        </fx:Component>
    </spark:DataGridSkin>
    

    方法2:

    another method 这涉及到复制默认的数据网格外观并删除carteIndicator属性。这样可能更好:P。

    方法3:

    这也适用于:

    <spark:DataGridSkin 
        xmlns:fx="http://ns.adobe.com/mxml/2009" 
        xmlns:s="library://ns.adobe.com/flex/spark" 
        xmlns:mx="library://ns.adobe.com/flex/mx"
        xmlns:fb="http://ns.adobe.com/flashbuilder/2009"
        xmlns:spark="spark.skins.spark.*" 
        xmlns:skins="view.skins.*"
        initialize="caretIndicator = null" />