title: How to update the position of a drag adorner during WPF drag-n-drop?
body: <p>I'm using an adorner to show a 'ghost' of the element being dragged...</p>
  
  <pre><code>var adornerLayer = AdornerLayer.GetAdornerLayer(topLevelGrid);
  dragAdorner = new DragAdorner(topLevelGrid, itemToDrag);
  adornerLayer.Add(dragAdorner);
  dragAdorner.UpdatePosition(e.GetPosition(topLevelGrid));
  
  DragDrop.DoDragDrop(sourceItems, viewModel, DragDropEffects.Move);
  
  adornerLayer.Remove(dragAdorner);
  itemToDrag = null;
  </code></pre>
  
  <p>...but I can't find a nice way to update the position of the adorner during the drag.  The closest I've got is by setting <code>AllowDrop="true"</code> on the top level grid and giving it a DragOver handler...</p>
  
  <pre><code>private void TopLevelGrid_OnDragOver(object sender, DragEventArgs e)
  {
   dragAdorner.UpdatePosition(e.GetPosition(topLevelGrid));
  }
  </code></pre>
  
  <p>But this means I don't get the proper <code>DragDropEffects</code> feedback on the cursor, i.e., it always shows the <code>DragDropEffects.Move</code> cursor instead of <code>DragDropEffects.None</code> until I'm over an actual drop target.</p>
  
  <p>Does anyone know a better way to update the adorner position?</p>