2013-04-22 44 views
2

在WinRT中,我試圖爲我的可變大小的GridView實現自定義拖放處理程序。在DragItemsStarting處理程序中,我可以通過使用e.Items.FirstOrDefault()來獲取該項目。Wrtiing WinRT GridView拖放處理程序

我只有一個GridView,因此該項目將被放置在其中的某個位置。如果它被放在另一個物品上,我需要知道該物品是什麼,以便我可以將被拖動的物品插入該位置。

我該如何獲得該項目? This使用GridView.ItemContainerGenerator.ContainerFromItem(item)的線程提到,但這似乎不工作,我找不到Drop事件的任何好例子。

謝謝

回答

0

您可以處理OnDragOver和OnDrop事件,採取指針位置從事件參數,然後使用VisualTreeHelper.FindElementsInHostCoordinates得到的指針下的所有元素,然後分析這些元素,並找到正確的,然後才您可以使用ItemContainerGenerator.ContainerFromItem獲取一個項目。 但是,由於最終用戶可以放置在沒有任何物品的地方,您甚至需要更多的東西。 你可以看看這裏做的樣品:http://www.codeproject.com/Articles/536519/Extending-GridView-with-Drag-and-Drop-for-Grouping