2009-04-18 84 views
6

我想創建一個簡單的winforms或wpf應用程序,我可以拖放虛擬「卡片」。這下面並不是我想要做的,但它是我在網上找到的代表用戶界面的最接近的東西。拖放到winforms或wpf

http://www.greenpeppersoftware.com/confluence/plugins/advanced/gallery-slideshow.action?imageNumber=1&pageId=24870977&decorator=popup&galleryTitle=Task+board+and+transitions

所以基本上我想有在GUI中,我可以從一個到另一個拖動和拖動列。

我的問題是:

  1. 這會不會更容易的WinForms或WPF
  2. 我從哪裏開始?

回答

2

在winForms和WPF中,通過使用DragOver和Drop目標上的事件,可以以類似的方式進行拖放。

但是對於WPF,您還有其他選擇。你也可以通過拖動縮略圖來使應用程序看起來更好(這在winforms中是可能的,但難以實現)。

看看this WPF sample它使用一個輔助類,並認爲它完全符合你的需求。

0

由於Thumb控件提供了易於使用的內置支持,因此在WPF中它可能會稍微更容易一些。 (如果我沒有記錯的話,在WinForms中,你需要自己處理鼠標事件,而WPF Thumb會爲你做這件事,並將它們轉換爲拖動開始,增量和結束事件。)

但是,如果你更熟悉一個框架比另一個框架可能會縮小Thumb控件的差異。

你還應該看看可以爲你處理這個問題的工具包/框架 - 我認爲它們同時存在於WinForms和WPF中(不確定)。

2

我同意John的觀點,WinForms和WPF相當接近w.r.t.拖放。但是WPF爲ItemsControl提供了更多的「通用基礎」,允許實現更獨立於所使用的最終UI元素(ListBox,ListView,TreeView ...可以很容易地切換)。顯然,WPF允許更多花哨效果。

我強烈推薦此博客文章: http://www.beacosta.com/blog/?p=53 無論是一些drag'n'drop基礎知識和一個乾淨的WPF drag'n'drop方法。 它顯示了一個相當通用的幫助器,用於拖放WPF ItemsControls,我非常喜歡這種「插入裝飾器」。我確實喜歡使用附加屬性很好地將拖放代碼與用戶控件本身分離開來,這使得它更易於使用和維護。

0

爲DARG和下降的一個好方法是解釋

檢測拖累的的MouseMove和的MouseLeftButtonDown

一個combinatination找到您想要拖動並創建包含格式的數據對象,該數據的數據和允許的效果。

通過調用的DoDragDrop()

將AllowDrop屬性爲True要允許丟棄的元素開始拖動。

註冊DragEnter事件的處理程序以檢測拖放位置。通過調用事件參數的GetDataPresent()來檢查格式和數據。如果可以刪除數據,請在事件參數上設置Effect屬性以顯示適當的鼠標光標。

當用戶釋放鼠標按鈕時,調用DragDrop事件。通過調用事件參數中提供的Data對象的GetData()方法獲取數據。

你可以找到完整的文章here