Вам нужно установить кисть фона на снимке рассеяния на цвет, то есть прозрачный
для того, чтобы даже захватить события отбрасывания.
Вам также необходимо использовать SurfaceDragDrop.
SurfaceDragDrop.AddDropHandler (scatterView1, OnCursorDrop);
AddHandler (ScatterViewItem.ScatterManipulationStartedEvent, новый ScatterManipulationStartedEventHandler (OnManipulationStarted));
private void OnManipulationStarted(object sender, RoutedEventArgs args)
{
ScatterViewItem svi = args.OriginalSource as ScatterViewItem;
if (svi! = null) // && DragDropScatterView.GetAllowDrag (svi))
{
svi.BeginDragDrop (svi.DataContext);
}
}
private void OnCursorDrop(object sender, SurfaceDragDropEventArgs args)
{
SurfaceDragCursor droppingCursor = args.Cursor;
// Add dropping Item that was from another drag source.
if (!scatterView1.Items.Contains(droppingCursor.Data)){
scatterView1.Items.Add(droppingCursor.Data);
var svi = scatterView1.ItemContainerGenerator.ContainerFromItem(droppingCursor.Data) as ScatterViewItem;
if (svi != null){
svi.Center = droppingCursor.GetPosition(scatterView1);
svi.Orientation = droppingCursor.GetOrientation(scatterView1);
svi.Height = droppingCursor.Visual.ActualHeight;
svi.Width = droppingCursor.Visual.ActualWidth;
svi.SetRelativeZIndex(RelativeScatterViewZIndex.Topmost);
}
}
}
Это все в основном из примера в SDK, я не помню, какой из них это к сожалению.
Приветствия
Стиан Фарстад