2008-08-07 15 views
14

Tengo un programa de WinForms escrito en .NET 2 que aloja un control de navegador web y representa páginas asp.net desde un servidor conocido.Arrastrar y colocar en un control de navegador alojado

Me gustaría poder arrastrar, por ejemplo, un nodo de árbol desde una vista de árbol en mi aplicación de winforms a una ubicación específica en la página web alojada y hacer que active un evento de javascript allí. Actualmente, puedo implementar la interfaz IDocHostUIHandler y obtener eventos drag \ drop en el control del navegador, luego llamar al Navigate("javascript:fire_event(...)") en el control para ejecutar una secuencia de comandos en la página. Sin embargo, quiero que esto funcione solo cuando dejo caer datos en una parte específica de de la página.

Una solución, supongo, sería hacer de tripas corazón y escribir un plugin para el navegador personalizado en la forma de un control ActiveX, incrustar que en el lugar que quiero caer a y dejar que implementan las interfaces de arrastrar \ necesarios .

¿Eso funcionaría? ¿Hay un enfoque más limpio? ¿Puedo aprovechar el hecho de que el control del navegador está alojado en mi aplicación y proporcionar un mayor nivel de interacción?

Respuesta

2

Tome un vistazo al proyecto BrowserPlus en Yahoo.

Parece que se han construido una serie de herramientas para que usted no tiene que hacer el trabajo arenosa de escribir el navegador plug-in usted mismo.

1

Si puede averiguar la posición en la pantalla de la parte de la página que está interesado en, puede comparar esto con la posición del ratón cuando recibe el evento de colocación. No estoy seguro de qué tan práctico es esto si puedes obtener la información del DOM o de otras cosas.

Como alternativa, ¿podría implementar los eventos del mouse en el bit de la página utilizando javascript?

Cuestiones relacionadas