J'utilise un Adorner pour montrer un « fantôme » de l'élément traîné ...Comment faire pour mettre à jour la position d'un drag adorner pendant WPF drag-n-drop?
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;
... mais je ne peux pas trouver un moyen agréable de mettre à jour la position du Adorner pendant la traîne. Le plus proche que j'ai est en mettant AllowDrop="true"
sur la grille de haut niveau et en lui donnant un gestionnaire de DragOver ...
private void TopLevelGrid_OnDragOver(object sender, DragEventArgs e)
{
dragAdorner.UpdatePosition(e.GetPosition(topLevelGrid));
}
Mais cela signifie que je ne suis pas le bon DragDropEffects
des commentaires sur le curseur, par exemple, il affiche toujours le curseur DragDropEffects.Move
au lieu de DragDropEffects.None
jusqu'à ce que je dépasse une cible réelle.
Quelqu'un sait-il un meilleur moyen de mettre à jour la position adorner?
Le lien est maintenant mort. –