以前,我試圖將一個對象從LibraryContainer
拖放到ScatterView
上,反之亦然,這很簡單,因爲LibraryContainer
,LibraryStack
和LibraryBar
默認支持拖放事件。這與Surface 2.0 SDK提供的ShoppingCart示例中的DragDropScatterView.cs
相結合非常簡單。PixelSense Surface 2.0 - 將用戶控件拖放到ScatterView上,反之亦然
現在我希望能夠將UserControl
拖放到ScatterView
4上,反之亦然,即如下所示:http://goo.gl/zZIdg。
從我研究的有一種方法可以做到這一點,可以在這裏找到:http://msdn.microsoft.com/en-us/library/ff727736.aspx。但是,在這裏他們不使用DragDropScatterView.cs
,它採用了不同的方式。您有兩個ObservableCollections
(源和目標),ScatterViewItems
和SurfaceListBox
。
有一件事我沒有在這個例子一樣的是,可拖不真的有一個規模屬性,因爲當用戶點擊ScatterViewItem
的ScatterViewItems
,它創建了一個視覺風格和隱藏ScatterViewItem
當你放下它,它會更新該座標和方向ScatterViewItem
並使其可見。我決定不這樣做,因爲我想要一個正常的ScatterViewItem
行爲。
我想要做的基本的東西是有,例如Label
,並在側ScatterView
並能夠拖動Label
(製造出一種視覺光標 - 已完成),並將其放到了ScatterView
,創建一個ScatterViewItem
,它具有與原始Label
相同的屬性。我試圖與DragDropScatterView.cs
這樣做,但是當我使用一個Label
我droppingCursor.Data
(在DragDropScatterView.cs
)是null
,我認爲這是因爲在draggedElement.DataContext
(上LabelView.xaml.cs
)也null
,但這並不是null
當我有一個SurfaceListBox
。
我在這裏提供了一個代碼示例:http://sdrv.ms/VDuHq5。在SurfaceWindow1.xaml
有TagVisualization
和ScatterView
的容器,LabelView.xaml
在`TagVisualization
內部被調用。
如果有人可以幫助我,我會很感激。