加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

DataGrid透明显示背景图片,及表头透明

发布时间:2020-12-15 01:15:39 所属栏目:百科 来源:网络整理
导读:?今天有人问我flex中怎样向DataGrid添加背景图片,以及怎样使表格透明。 ?? 其实这个查下文档就知道,可以如下用setStyle设置: dataGrid.setStyle( ' backgroundAlpha ' ,alpha) ?? ??? 但是,没多久又告诉我,表头并不透明,看不到后面的背景图片,查了下a
?今天有人问我flex中怎样向DataGrid添加背景图片,以及怎样使表格透明。
?? 其实这个查下文档就知道,可以如下用setStyle设置:

dataGrid.setStyle( ' backgroundAlpha ' ,alpha)
??
??? 但是,没多久又告诉我,表头并不透明,看不到后面的背景图片,查了下api,简单继承下DataGrid,重写drawHeaderBackground方法就行,如:

override? protected ?function?drawHeaderBackground(headerBG:UIComponent): void

?

{

???
//透明参数

???headerBG.alpha?=?_headerAlpha;

??
//是否可见

???headerBG.visible?=?_headerVisible;

???

???
super.drawHeaderBackground(headerBG);

?}

效果如下:
1,未处理的DataGrid,表格不透明



2,处理DataGrid后



测试效果可以点击: http://www.munkiihouse.com/flexapps/StyleDataGrid/StyleDataGridDemo.html

代码:
1、继承于DataGrid:

package ?com.mh.components

{

?
import?mx.controls.DataGrid;

?
import?mx.core.UIComponent;

?
public?class?StyleDataGrid?extends?DataGrid

?

{

??

??
private?var?_headerBGAlpha:Number?=?1;??

??
public?function?set?headerBGAlpha(value:Number):void

??

{

???_headerBGAlpha?
=?value;

???invalidateDisplayList();

??}

??

??
private?var?_headerBGVisible:Boolean?=?true;??

??
public?function?set?headerBGVisible(value:Boolean):void

??

{

???_headerBGVisible?
=?value;

???invalidateDisplayList();

??}

2、测试用例:

<? xml?version="1.0"?encoding="utf-8" ?>

< mx:Application? xmlns:mx ="http://www.adobe.com/2006/mxml" ?layout ="absolute" ?xmlns:mhc ="com.mh.components.*" ?backgroundColor ="#FF8000" ?backgroundGradientColors ="[#ff8040,?#e14900]" >


?

?
< mx:Panel? x ="10" ?y ="10" ?width ="550" ?height ="500" ?layout ="absolute" ?title ="Albums" ?paddingBottom ="10" ?paddingLeft ="10" ?paddingRight ="10" ?paddingTop ="10" ?backgroundImage ="@Embed('bg.jpg')" >

??
< mhc:StyleDataGrid? id ="sdg_albums" ?dataProvider ="{Catalog.cataglog}" ?left ="10" ?right ="10" ?top ="10" ?bottom ="10" > ??

???
< mhc:columns >

????
< mx:DataGridColumn? dataField ="ARTIST" ?headerText ="Artist" ?width ="200" ? />

????
< mx:DataGridColumn? dataField ="TITLE" ?headerText ="Title" ? />

????
< mx:DataGridColumn? dataField ="YEAR" ?headerText ="Year" ?width ="60" ? />

???
</ mhc:columns > ??

??
</ mhc:StyleDataGrid >

?
</ mx:Panel >

?

?

?
< mx:Panel? x ="568" ?y ="10" ?width ="300" ?height ="200" ?layout ="vertical" ?title ="Controls" ?paddingTop ="10" ?paddingRight ="10" ?paddingBottom ="10" ?paddingLeft ="10" >

??
< mx:FormItem? label ="Header?Alpha:" ??width ="100%" ?labelWidth ="120" >

???
< mx:HSlider? id ="hs_h_alpha" ?value ="1" ?minimum ="0" ?maximum ="1" ?snapInterval ="0.1" ?allowTrackClick ="true" ?change ="{sdg_albums.headerBGAlpha?=?hs_h_alpha.value}" ?width ="100" /> ???

??
</ mx:FormItem >

??

??
< mx:FormItem? label ="Header?Visable:" ??labelWidth ="120" >

???
< mx:CheckBox? id ="cb_visible" ?label ="Visable" ?selected ="true" ?change ="{sdg_albums.headerBGVisible?=?cb_visible.selected}" /> ?????

??
</ mx:FormItem >

??
< mx:FormItem? label ="Background?Alpha:" ??width ="100%" ?labelWidth ="120" >

???
< mx:HSlider? id ="hs_bg_alpha" ?value ="0.5" ?minimum ="0" ?maximum ="1" ?snapInterval ="0.1" ?allowTrackClick ="true" ?change ="{sdg_albums.setStyle('backgroundAlpha',hs_bg_alpha.value)}" ?width ="100" /> ???

??
</ mx:FormItem >

?
</ mx:Panel >

?

</ mx:Application >


3、测试数据:

package

{

?public?class?Catalog

?{

??

??public?static?function?get?cataglog():XMLList

??{

???return?catalog..CD;

??}

??

??private?static?var?catalog:XML?=?
< CATALOG >

?????
< CD >

???????
< TITLE > Empire?Burlesque </ TITLE >

???????
< ARTIST > Bob?Dylan </ ARTIST >

???????
< COUNTRY > USA </ COUNTRY >

???????
< COMPANY > Columbia </ COMPANY >

???????
< PRICE > 10.90 </ PRICE >

???????
< YEAR > 1985 </ YEAR >

?????
</ CD >

?????
< CD >

???????
< TITLE > Hide?your?heart </ TITLE >

???????
< ARTIST > Bonnie?Tylor </ ARTIST >

???????
< COUNTRY > UK </ COUNTRY >

???????
< COMPANY > CBS?Records </ COMPANY >

???????
< PRICE > 9.90 </ PRICE >

???????
< YEAR > 1988 </ YEAR >

?????
</ CD >

?????
< CD >

???????
< TITLE > Greatest?Hits </ TITLE >

???????
< ARTIST > Dolly?Parton </ ARTIST >

???????
< COUNTRY > USA </ COUNTRY >

???????
< COMPANY > RCA </ COMPANY >

???????
< PRICE > 9.90 </ PRICE >

???????
< YEAR > 1982 </ YEAR >

?????
</ CD >

?????
< CD >

???????
< TITLE > Romanza </ TITLE >

???????
< ARTIST > Andrea?Bocelli </ ARTIST >

???????
< COUNTRY > EU </ COUNTRY >

???????
< COMPANY > Polydor </ COMPANY >

???????
< PRICE > 10.80 </ PRICE >

???????
< YEAR > 1996 </ YEAR >

?????
</ CD >

?????
< CD >

???????
< TITLE > When?a?man?loves?a?woman </ TITLE >

???????
< ARTIST > Percy?Sledge </ ARTIST >

???????
< COUNTRY > USA </ COUNTRY >

???????
< COMPANY > Atlantic </ COMPANY >

???????
< PRICE > 8.70 </ PRICE >

???????
< YEAR > 1987 </ YEAR >

?????
</ CD >

?????
< CD >

???????
< TITLE > Black?angel </ TITLE >

???????
< ARTIST > Savage?Rose </ ARTIST >

???????
< COUNTRY > EU </ COUNTRY >

???????
< COMPANY > Mega </ COMPANY >

???????
< PRICE > 10.90 </ PRICE >

???????
< YEAR > 1995 </ YEAR >

?????
</ CD >

?????
< CD >

???????
< TITLE > 1999?Grammy?Nominees </ TITLE >

???????
< ARTIST > Many </ ARTIST >

???????
< COUNTRY > USA </ COUNTRY >

???????
< COMPANY > Grammy </ COMPANY >

???????
< PRICE > 10.20 </ PRICE >

???????
< YEAR > 1999 </ YEAR >

?????
</ CD >

?????
< CD >

???????
< TITLE > For?the?good?times </ TITLE >

???????
< ARTIST > Kenny?Rogers </ ARTIST >

???????
< COUNTRY > UK </ COUNTRY >

???????
< COMPANY > Mucik?Master </ COMPANY >

???????
< PRICE > 8.70 </ PRICE >

???????
< YEAR > 1995 </ YEAR >

?????
</ CD >

?????
< CD >

???????
< TITLE > Big?Willie?style </ TITLE >

???????
< ARTIST > Will?Smith </ ARTIST >

???????
< COUNTRY > USA </ COUNTRY >

???????
< COMPANY > Columbia </ COMPANY >

???????
< PRICE > 9.90 </ PRICE >

???????
< YEAR > 1997 </ YEAR >

?????
</ CD >

?????
< CD >

???????
< TITLE > Tupelo?Honey </ TITLE >

???????
< ARTIST > Van?Morrison </ ARTIST >

???????
< COUNTRY > UK </ COUNTRY >

???????
< COMPANY > Polydor </ COMPANY >

???????
< PRICE > 8.20 </ PRICE >

???????
< YEAR > 1971 </ YEAR >

?????
</ CD >


???
</ CATALOG > ;

?}

}

?

?

http://www.blogjava.net/kissjava/archive/2009/04/30/262521.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读