Arrastrar pasa de "origen" a "destino". Cuando la fuente llama a DoDragDrop() con allowedEffects como DragDropEffects.Copy, entonces puedo cancelar el drop configurando Effects = DragDropEffects.None en el destino (en el evento DragOver).¿Por qué se permite la eliminación incluso si se establece Effects = DragDropEffects.None?
Pero la misma situación falla cuando configuro mis allowedEffects como DragDropEffects.Move.
para reproducir la situación, descarga la muestra de http://jaimersamples.members.winisp.net/samples/dragdrop/drag.zip
Cambio línea .. (a DragDropEffects.Move)
DragDrop.DoDragDrop(this.DragSource, data, DragDropEffects.Copy);
Agregar línea ..
void Window1_DragOver(object sender, DragEventArgs args)
{
args.Effects = DragDropEffects.None;
Y también en comentario todo, DragSource_GiveFeedback ..
void DragSource_GiveFeedback(object sender, GiveFeedbackEventArgs e)
{
//System.Diagnostics.Debug.WriteLine("DragSource_GiveFeedback " + e.Effects.ToString());
¿Hay algún tipo de error en el marco, o simplemente no puedo ver algo obvio?
Tengo problemas para reproducir su problema con la muestra. Sin modificar, la muestra no me permite soltar el cuadro rojo en el lienzo de destino. Además, todas las instancias de DragDropEffects. * Ya están configuradas en .Move, por lo que no estoy seguro de qué línea de código debe modificarse. Por lo que vale, los cambié a DragDropEffects.Copy y aún no podía colocar el artículo en el lienzo de destino. –
No puedo tomar capturas de pantalla para mostrar el efecto deseado que deseo. El cursor del mouse no está incluido en las capturas de pantalla, pero volveré a formular mi pregunta. La muestra no implementa la caída del cuadro rojo, simplemente comienza la acción de arrastre. Lo que quiero es que el cursor del mouse siempre indique si se permite o no una caída. Está funcionando cuando invoco DoDragDrop() con DragDropEffects.Copy y establezco args.Effects = DragDropEffects.None en Window1_DragOver. Pero no funciona cuando llamo a DoDragDrop() con DragDropEffects.Move. – Trainee4Life
¿No deberías establecer el efecto durante la retroalimentación? – leppie