最近項目要開發個新的模塊,可是ui是dfgui的,我想在這個列表中對其進行拖拽到場景時出現模型,進行自由擺放,那麼就得用到拖拽事件了。ide
1,給Model_Row添加事件,分別是OnDragStart、OnDragEnd、OnDragDrop學習
OnDragStart是在鼠標拖拽開始時觸發,
OnDragEnd是在鼠標拖拽結束觸發。
OnDragDrop是在鼠標拖拽完成後觸發
上測試代碼測試
1 public void OnDragStart(dfControl control, dfDragEventArgs dragEvent) 2 { 3 Debug.Log("DragStartDragStartDragStartDragStartDragStart"); 4 dragEvent.State = dfDragDropState.Dragging; 5 } 6 public void OnDragEnd(dfControl control, dfDragEventArgs dragEvent) 7 { 8 Debug.Log("DragEndDragEndDragEndDragEndDragEndDragEndDragEnd"); 9 // Add event handler code here 10 } 11 public void OnDragDrop(dfControl control, dfDragEventArgs dragEvent) 12 { 13 Debug.Log("DragDropDragDropDragDropDragDropDragDropDragDrop"); 14 15 // Add event handler code here 16 }
分析:OnDragStart是在拖拽開始時就會執行,值得注意的是雖然OnDragEnd是在拖拽結束時觸發,可是是在OnDragStart必須設置其拖拽事件的狀態爲dfDragDropState.Dragging,不然OnDragEnd將不執行。ui
OnDragDrop呢是將此控件拖拽到另外一個控件中觸發spa
那麼以下圖,我在另外一個控件上綁定了OnDragDrop這個事件,並增長tttttt.cs,些時我點擊列表中的某一項目手提到Model控件上時,觸發了tttttt.cs腳本中的OnDragDrop的代碼了3d
另外再補充一點,在作完這個列表以後碰到的一個問題就是,當我點擊其中某一項時,這一項產生了移動,而後就無語了。
發現dfEventBinding 的Event Handler能夠幫助咱們解決這個問題
BringToFront:前置
Disable:點擊以後禁用該項。
DoClick
Enable
Focus
Hide:點擊以後隱藏項
Localize
SendToBack
Show
Unfocus
而後我選擇的是Localize,而後我就繼續碼碼了。
---------------------------------------------------------------------------------------------------code
學習筆記 -- 一天一點點,共同進步blog