Warum ist Drop erlaubt, auch wenn Effects = DragDropEffects.None gesetzt ist?

Ziehen kommt von "Quelle" nach "Ziel". Wenn die Quelle ruft DoDragDrop() mit allowedEffects as DragDropEffects.Kopieren, dann bin ich in der Lage zu stornieren, fallen durch Einstellung Effects = DragDropEffects.Keiner am Ziel (in der DragOver-Ereignis).

Aber die gleiche situation ausfällt wenn ich meine allowedEffects as DragDropEffects.Bewegen.

Reproduzieren Sie die situation, laden Sie die Probe aus http://jaimersamples.members.winisp.net/samples/dragdrop/drag.zip

Leitung ändern.. (DragDropEffects.Move)

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

Zeile hinzufügen..

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

Und kommentieren Sie auch den gesamten, DragSource_GiveFeedback..

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

Ist es eine Art bug im framework, oder ich bin einfach nicht in der Lage, um zu sehen, etwas, das offensichtlich ist?

Kommentar zu dem Problem
Ich habe Probleme reproduzieren Sie Ihr Problem mit der Probe. Unverändert, die Probe nicht erlauben, mich zu löschen das rote Feld in der Ziel-canvas. Auch alle Instanzen von DragDropEffects.* bereits eingestellt sind .Bewegen, so dass ich nicht sicher bin, welche Zeile code geändert werden muss. Für das, was Ihren Wert, ich habe Sie alle auf DragDropEffects.Kopieren Sie und ich konnte immer noch nicht löschen Sie das Element in der Ziel-canvas. Kommentarautor: Ben Collier
Ich bin nicht in der Lage, screenshots zu machen, um zu zeigen, was die beabsichtigte Wirkung, die ich will. Der Maus-cursor ist nicht in den screenshots, aber ich werde meine Frage anders formulieren. Die Probe nicht implementieren, der Abwurf der red box, beginnt das ziehen. Was ich möchte ist, dass der Mauszeiger immer angeben, ob ein drop erlaubt ist oder nicht. Es funktioniert, wenn ich rufe DoDragDrop() mit DragDropEffects.Kopieren und Einstellung args.Effects = DragDropEffects.Keiner in Window1_DragOver. Aber es funktioniert nicht wenn ich Anrufe DoDragDrop() mit DragDropEffects.Bewegen. Kommentarautor: Trainee4Life
Sollten Sie die Einstellung der Effekt beim feedback? Kommentarautor: leppie
Nicht das framework automatisch ändern Sie den Maus-cursor auf der Grundlage der AllowedEffects-set von der drag-Quelle und der Auswirkungen festgelegt, die von drop-Ziel? Aus dem, was wenig ich weiß, wenn Effekte nicht kompatibel ist mit AllowedEffects, wird der Maus-cursor wechselt automatisch zu "Kreuz-Zeichen". Kommentarautor: Trainee4Life
@Trainee4Life der link scheint tot zu sein Kommentarautor: Breeze

InformationsquelleAutor der Frage Trainee4Life | 2009-12-11

Schreibe einen Kommentar