2012-07-30 9 views
5

No estoy seguro de por qué, pero los eventos de arrastrar y soltar en un HwndHost no parecen funcionar (en realidad, ningún evento parece funcionar en absoluto). Puedo conectar los mensajes de Windows a HwndHost, sin embargo, parece que no encuentro nada útil.WPF HwndHost Drag & Drop

Estoy tratando de poder arrastrar un nodo desde una vista de árbol a un HwndHost que aloja XNA. Establecí AllowDrop como verdadero en HwndHost, pero parece que no hace nada. ¿Alguien sabe cómo puedo habilitar a HwndHost para ser un objetivo de una operación de arrastrar/soltar?

Gracias!

+0

Me gustaría tratar de conseguir la dll expression.interactivity que le permite llamar a arrastrar y soltar eventos en su modelo de vista. Es una de las formas más fáciles de implementar arrastrar y soltar con wpf .. solo la interactividad de la expresión de google para wpf arrastrar y soltar. Espero que esto ayude :) – TMan

+0

Sí, tengo el mismo problema. Ya tengo una arquitectura completa basada en AttachedEvents en Wpf y necesito reutilizar la misma arquitectura para mi clase HwndHost derivada. Ya he implementado todas las clases de arrastrar y soltar OLE (en C++/cli) para interactuar con la infraestructura de arrastrar y soltar de Windows, pero no puedo generar eventos en WPF debido al constructor interno DragEventArgs. – nemenos

+1

Bueno, encontré una solución súper hacky. Si inserta HwndHost en DockPanel y configura AllowDrop en DockPanel, puede responder a los eventos allí en lugar de a HwndHost. El DockPanel debe tener un fondo sin embargo. Lo intenté con otros marcos/controles, y solo el DockPanel pareció funcionar. – Trevor

Respuesta

0

¿Es este comportamiento solo cuando se ejecuta bajo el depurador?

¿Está ejecutando Visual Studio como administrador?

Si es así me encontré recientemente con este problema. Pruébalo sin depuración, si eso funciona, necesitarás ejecutar la aplicación y luego adjuntarla para depurar el código de arrastrar y soltar.

Es una característica de seguridad en Windows:/