Возможно, вы захотите установить для эффектов значение «Нет» (или более конкретно отключить функцию «Копировать / связать / переместить»).
Хороший пример того, как это сделать программно, находится внутри самого TreeViewDragDropTarget, поскольку он содержит логику, аналогичную аналогичной.отключить, если вы пытаетесь перетащить элемент под себя.
http://silverlight.codeplex.com/SourceControl/changeset/view/56962#779753
Соответствующий фрагмент:
if (itemsControl == null || IsTreeViewItemDraggedInDescendent(args) || IsTreeViewItemDraggedDirectlyAboveOrBelowSelf(args))
{
SW.DragDropEffects effects = args.AllowedEffects & (~(SW.DragDropEffects.Copy | SW.DragDropEffects.Link | SW.DragDropEffects.Move));
args.Effects = effects;
if (args.Effects != args.AllowedEffects)
{
args.Handled = true;
}
}