给定一些规则,我想穿过DataGrid中的整行。可能吗?DataGrid中的穿透
2
A
回答
2
最可靠的方法来完成这项工作,是使用自定义项目呈现器,其中重写OnUpdateDisplay功能,您可以使用一个图形对象绘制基于布尔参数的数据网格项目标签之间的水平线。
我可以写下这样的一个标签,如果你想,但你必须弄清楚使其与DataGrid项组件工作的内部。
请让我知道你是否想让我粘贴一个标签的例子。
EDIT(糊化例)
创建一个新的Flex项目,添加它扩展了类的label.The名称的新类是StrikeThroughLabel。把这个默认的包中,截至目前(即离开
package
{
import mx.controls.Label;
public class StrikeThroughLabel extends Label
{
private var isStriked:Boolean = false;
public function StrikeThroughLabel()
{
super();
}
public function set striked(aIsStriked:Boolean):void{
isStriked = aIsStriked;
this.updateDisplayList(this.width, this.height);
}
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{
super.updateDisplayList(unscaledWidth, unscaledHeight);
if(isStriked){
graphics.lineStyle(1,0x0000FF,1,false,"normal",null,null,3.0);
graphics.lineTo(unscaledWidth,unscaledHeight);
}else{
graphics.clear();
}
}
}
}
一旦多数民众赞成完成空包领域),来到你的main.mxml和使用MXML下面的代码:
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="windowedapplication1_creationCompleteHandler(event)"
xmlns:local="*">
<local:StrikeThroughLabel id="strikeThrough" text="Hello" x="129" y="128"/>
<mx:Script>
<![CDATA[
import mx.events.FlexEvent;
private var isLabelStriked:Boolean = false;
protected function windowedapplication1_creationCompleteHandler(event:FlexEvent):void
{
// TODO Auto-generated method stub
//this.strikeThrough.striked = true;
}
protected function button1_clickHandler(event:MouseEvent):void
{
// TODO Auto-generated method stub
isLabelStriked = !isLabelStriked;
this.strikeThrough.striked = isLabelStriked;
}
]]>
</mx:Script>
<mx:Button click="button1_clickHandler(event)" id="myButton" label="Toggle"/>
</mx:WindowedApplication>
上面显示了一个按钮和一个标签,单击该按钮可以切换标签上的删除线。 请注意,现在穿透是对角线的,但只需稍微调整一下线条的登录,就可以得到水平穿透效果。
1
我不确定这是帮助还是它,但只有这一个出现在我的脑海。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
[Bindable]
private var stepsObjs:ArrayCollection = new ArrayCollection();
private function init():void
{
stepsObjs.addItem(new CObj(100,100,true));
stepsObjs.addItem(new CObj(700,800,false));
}
]]>
</mx:Script>
<mx:DataGrid id="dg" dataProvider="{stepsObjs}" click="{dg.selectedItem.strike = !dg.selectedItem.strike}" editable="false">
<mx:columns>
<mx:DataGridColumn>
<mx:itemRenderer>
<mx:Component>
<mx:Canvas width="100%"
height="100%"
horizontalScrollPolicy="off"
verticalScrollPolicy="off">
<mx:Script>
<![CDATA[
override public function set data(value:Object) : void {
super.data = value;
}
]]>
</mx:Script>
<mx:TextArea text="{data.x}" borderStyle="none" editable="false"/>
<mx:HRule strokeColor="red" width="100%" visible="{data.strike}" y="{this.height/2}"/>
</mx:Canvas>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
<mx:DataGridColumn>
<mx:itemRenderer>
<mx:Component>
<mx:Canvas width="100%"
height="100%"
horizontalScrollPolicy="off"
verticalScrollPolicy="off">
<mx:Script>
<![CDATA[
override public function set data(value:Object) : void {
super.data = value;
}
]]>
</mx:Script>
<mx:TextArea text="{data.y}" borderStyle="none" editable="false"/>
<mx:HRule strokeColor="red" width="100%" visible="{data.strike}" y="{this.height/2}"/>
</mx:Canvas>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
</mx:Application>
CObj类
package
{
[Bindable]
public class CObj
{
public function CObj(x:Number , y:Number , str:Boolean)
{
this.x = x;
this.y = y;
this.strike = str;
}
public var x:Number;
public var y:Number;
public var strike:Boolean;
}
}
相关问题
- 1. 穿透功能
- 2. Python线程穿透
- 3. 穿透网眼的光线
- 4. HTML电子邮件中的穿透
- 5. 让SKPhysicsBody难以穿透?
- 6. 在C代码中发现“穿透”
- 7. 通配符子域的透明重写/穿透
- 8. 是否只有Javascript才能穿透NAT?
- 9. TCP NAT穿透/ - 用.NET打孔
- 10. 如何处理纺织品穿透
- 11. C#UDP穿透没有rendevous服务器
- 12. 使用Java进行NAT穿透
- 13. 对象甚至穿透子弹模式
- 14. 直通式/穿透式造型
- 15. 在穿透关系中获取中间模型的值
- 16. 如何使DataGrid透明?
- 17. 在WPF DataGrid中显示透明图像
- 18. 使SelectionColor在mx中透明:datagrid
- 19. 是否可以穿透Appcelerator中的标签文本?
- 20. 在文本视图中更改穿透选定的文本
- 21. 为什么在类型开关中不允许穿透?
- 22. 固体球体穿透字母表的固体墙L
- 23. 简单的PHP NAT穿透服务器脚本
- 24. TCP打孔(NAT穿透)图书馆什么的?
- 25. 点击鼠标穿透Qwidgets到pyside的应用程序?
- 26. 关于使用UPnP进行NAT穿透的一些问题
- 27. 如何改变线条的穿透高度
- 28. 如何使WPF DataGrid列标题透明
- 29. WPF Datagrid圆角与透明背景
- 30. 如何为DataGrid设置透明背景?
当然。我很感激。先谢谢你。 –
嗨,ive更新了代码的答案。你可以看看这是否工作? – Neeraj
本周我正在完成其他项目。在我看来,它会起作用,所以我接受了答案。我应该有的任何问题我会在这里发布。谢谢。 –