我有一個應用程序,其中包含一個帶正方形(由邊框和底層控件表示)的ItemsControl組成的用戶控件。 把它想象成一個棋盤。在Metro中拖放ItemsControl(C#/ XAML)
由於我的ItemTemplate由一個邊框組成,因此它沒有像GridView或ListView一樣的拖動&的本機支持。我試過對我的格子使用GridView和ListView之前,但GUI變得太遲鈍,所以我切換到了一個簡單的邊框,使它更快。
通過鉤住操作事件我仍然設法得到我的邊框及其內容的拖動行爲(至少在涉及到GUI時)。 但是,當我嘗試將一個正方形(邊框)拖到另一個正方形時,我似乎無法獲取要放開的放置事件。我需要知道目標廣場是哪個。
我知道,因爲我在做我的拖動功能&自己我需要做一些事情來勾住邊界的放下事件,但是什麼?
我也試着訂閱邊界事件PointerEntered,PointerMoved等來找出哪個方形的指針結束了,當按鈕被釋放時,我會知道目標方塊是哪個。這似乎只能在兩個方向上工作(右和下),指針事件在向左或向上移動時似乎不會觸發,奇怪。我讀過somwhere的項目(方塊)有不同的ZIndex,這可能會影響事件的發射。
我已經掙扎了幾個小時,現在真的很感謝一些幫助。
你用DragEnter/DragOver/DragLeave和Drop事件看過嗎? – 2012-07-03 23:50:08