Flex AdvancedDataGrid - PullRequest
       22

Flex AdvancedDataGrid

0 голосов
/ 04 марта 2011

Я хочу установить градиентный фон для выбранного элемента в моем AdvancedDataGrid

Как я могу это сделать?

Большое спасибо Владимир

1 Ответ

3 голосов
/ 04 марта 2011

Вы можете расширить AdvancedDataGrid, как в примере ниже: </p> <pre><code>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 (которые имеют одинаковую структуру).Что касается вторичного цвета, вы можете оставить его жестко запрограммированным или определить стиль для него.

...