0

Spark DataGrid で caretIndicator を削除または非表示にする簡単な方法が見つからなかったため、より良い方法がない場合は、ここにソリューションを投稿しています。

4

1 に答える 1

1

これはうまくいくようです。caretIndiator を非表示にするには、spark.skins.spark.DataGridSkin に基づいて新しいデータ グリッド スキンを作成する必要があります。次に、そのスキンで、ストロークのアルファまたは四角形のアルファを 0 に設定します。

方法 1:

MXML :

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

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:

デフォルトのデータグリッド スキンを複製し、caretIndicator プロパティを削除する別の方法があります。その方がおそらく良いでしょう: 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" />
于 2013-03-20T19:59:52.470 に答える