給定一些規則,我想穿過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
本週我正在完成其他項目。在我看來,它會起作用,所以我接受了答案。我應該有的任何問題我會在這裏發佈。謝謝。 –