首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flex AdvancedDataGrid

Flex AdvancedDataGrid
EN

Stack Overflow用户
提问于 2011-03-04 21:18:31
回答 1查看 819关注 0票数 0

我想在AdvancedDataGrid中为所选项目设置渐变背景

我该怎么做呢?

非常感谢弗拉基米尔

EN

回答 1

Stack Overflow用户

发布于 2011-03-04 23:41:03

您可以扩展AdvancedDataGrid,如下例所示:

代码语言:javascript
复制
import flash.display.GradientType;
import flash.display.Graphics;
import flash.display.Sprite;
import flash.geom.Matrix;   
import mx.controls.AdvancedDataGrid;
import mx.controls.listClasses.IListItemRenderer;
import mx.core.mx_internal;

use namespace mx_internal;
public class CustomAdvancedDataGrid extends AdvancedDataGrid
{
    public var secondaryColor : uint = 0xFFFFFF;

    protected override function drawSelectionIndicator(
        indicator:Sprite, x:Number, y:Number,
        width:Number, height:Number, color:uint,
        itemRenderer:IListItemRenderer) : void
    {
        if (isRowSelectionMode())
            width = unscaledWidth - viewMetrics.left - viewMetrics.right;

        var mat : Matrix = new Matrix();
        mat.createGradientBox(width,height,-90*Math.PI/180);

        var g:Graphics = Sprite(indicator).graphics;
        g.clear();
        g.beginGradientFill(GradientType.LINEAR, [color, secondaryColor], [1, 1], [0, 255], mat);
        g.drawRect(0, 0, width, height);
        g.endFill();

        indicator.x = x;
        indicator.y = y;
    }
}

您可以考虑覆盖的其他函数有: drawHighlightIndicator和drawCaretIndicator (它们具有相同的结构)。至于secondaryColor,您可以将其保留为硬编码,或者为其定义一个样式。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5194206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档