Вы хотите добавить своего перетаскивателя во время перетаскивания. Я видел это несколько раз, но быстрый поиск приводит к this behavior, который имеет приятный образец, как я видел. Представитель выборки:
void itemsControl_PreviewDragEnter(object sender, DragEventArgs e)
{
ItemsControl itemsControl = (ItemsControl)sender;
if (e.Data.GetDataPresent(ItemType))
{
object data = e.Data.GetData(ItemType);
InitializeDragAdorner(itemsControl, data, e.GetPosition(itemsControl));
InitializeInsertAdorner(itemsControl, e);
}
e.Handled = true;
}
Они завернуть всю презентацию дрэг украшению красиво в DragAdorner
классе. (Я бы хотел, чтобы я сделал это так, на самом деле)
Я также видел трюки с созданием украшения из Visual Brush изначально перетаскиваемого элемента, но я думаю, что мне нравится этот подход лучше всего до сих пор.
BTW: После приближения к этому несколько раз, я настоятельно рекомендую обернуть ваш код перетаскивания и перетащить его в поведение. В противном случае вы заканчиваете его повсюду. Получение командного права с MVVM может быть довольно сложным, но это того стоит, ИМХО.
Спасибо за помощь :) – Kamikaze