I’m trying to implement drag and drop re-ordering of items in a WPF TreeView and want to be able to display to the user a carret between items in the tree view to be able to indicate where the item will be positioned when the drop operation completes, a little bit like in the following screenshot (except for a tree view not a list view)

I think I understand how drag and drop works in WPF and was planning to implement this by handling the OnDragOver event to determine the desired position however I’m not sure how I should then draw the resulting carret effect.
Should I insert a dummy item in the list view at the position I wish to drop the item (note that ideally I don’t want the items in the list to visibly move, so somehow the height this item takes up would have to be 0), or is there an easier way to achieve the same effect?
If you have the custom adorner, you can now add it to the adorner layer of your DataGrid:
However you need to remove it as soon as the drag operation ends for whatever reason otherwise the guide/caret remains visible:
If you have this then you can start to handle all the exceptional cases:
Dropping Rows in the area left to all the columns
Dropping Rows below the area where the rows are.
Dropping Rows that are not completely visible (bottom or upper part is scrolled out of sight)
Dragging and dropping from different instances of the window.
etc. etc.
And in the end most of the users don’t enjoy the hard work, because they don’t have clue they can drag and drop or they prefer to use the buttons.
But I hope above gives you a kickstart.
Ah I forgot this link which was helpful to me: MSDN doc: Adorners overview