Pourquoi est-goutte permis, même si des Effets = DragDropEffects.Aucun n'est défini?

Glissement se produit à partir de "source" pour "cible". Quand la source des appels DoDragDrop() avec allowedEffects comme DragDropEffects.La copie, puis je suis en mesure d'annuler la baisse des Effets = DragDropEffects.Aucun à la cible (dans événement DragOver).

Mais la même situation d'échec lorsque j'ai mis mon allowedEffects comme DragDropEffects.Déplacer.

À reproduire la situation, téléchargez l'exemple de http://jaimersamples.members.winisp.net/samples/dragdrop/drag.zip

Changement de ligne.. (à DragDropEffects.Déplacer)

DragDrop.DoDragDrop(this.DragSource, data, DragDropEffects.Copy);

Ajouter ligne..

void Window1_DragOver(object sender, DragEventArgs args)
{
   args.Effects = DragDropEffects.None;

Et aussi de commenter l'ensemble, DragSource_GiveFeedback..

void DragSource_GiveFeedback(object sender, GiveFeedbackEventArgs e)
{
    //System.Diagnostics.Debug.WriteLine("DragSource_GiveFeedback " + e.Effects.ToString());

Est-il une sorte de bug dans le cadre, ou suis-je tout simplement pas en mesure de voir quelque chose d'évident?

  • Je n'arrive pas à reproduire votre problème avec l'échantillon. Non modifié, l'échantillon ne me permet pas de déposer la boîte rouge dans la destination de la toile. Aussi, toutes les instances de DragDropEffects.* sont déjà .Se déplacer, donc je ne suis pas sûr que la ligne de code qui doit être changé. Pour ce que sa vaut le coup, j'ai changé tous à DragDropEffects.Copie et je n'ai toujours pas de déposer l'objet dans le canevas.
  • Je ne suis pas en mesure de prendre des captures d'écran pour montrer ce que l'effet voulu, je le veux. Le curseur de la souris n'est pas inclus dans les captures d'écran, mais je vais reformuler ma question. L'échantillon ne pas mettre en œuvre l'abandon de la zone rouge, il commence juste glisser la souris. Ce que je veux, c'est que le curseur de la souris, il faut toujours indiquer si un menu est autorisé ou pas. C'est quand j'appel DoDragDrop() avec DragDropEffects.La copie, et le paramètre args.Effets = DragDropEffects.Aucun dans Window1_DragOver. Mais cela ne fonctionne pas quand je l'appelle DoDragDrop() avec DragDropEffects.Déplacer.
  • Ne devriez pas vous être de réglage de l'effet lors de la rétroaction?
  • Ne pas le cadre de modifier automatiquement le curseur de la souris basé sur le AllowedEffects fixé par la source de glissement, et les Effets par cible? Quel que soit le peu que je sais, si des Effets est incompatible avec AllowedEffects, le curseur de la souris passe automatiquement en "croix".
  • le lien semble mort
InformationsquelleAutor Trainee4Life | 2009-12-11