0

グリッドの背景が非常に暗いため、ヘッダーのすべてのマーキングを白にする必要があります。AdvancedDataGrid の矢印アイコン以外のすべてでそれを行うことができました。http://flexvenom.wordpress.com/2007/12/04/howto-setting-a-custom-sortitemrenderer-to-the-advanceddatagrid/には解決策がありますが、ソートシーケンス番号が殺されます。ヘッダー内のすべて (背景を除く) を白くするにはどうすればよいですか?

3.5 SDK を実行しています。

4

1 に答える 1

0

最終的には、私が試していたもの (アイテム レンダラーにソート部分全体を描画させる) よりもはるかに単純でしたが、2 つの非常に軽量なレンダラーを作成する必要があったため、それでもかなり複雑でした。シーケンス番号を 1 つの色のままにすることもできましたが、少し凝って、マウス オーバー カラーと通常の色を使用することにしました。

ヘッダー レンダラー (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;
    }
}
}

1 つの Flex ともう 1 つの AS を作成した理由を聞かないでください。それは機能するので、壊れていないので、修正するつもりはありません。

于 2013-06-10T15:34:00.937 に答える