c# - open - Arrastrar y soltar a un control de navegador alojado
webbrowser url c# (2)
Eche un vistazo al proyecto BrowserPlus en Yahoo.
Parece que han creado un conjunto de herramientas para que usted no tenga que hacer el arduo trabajo de escribir el complemento del navegador usted mismo.
Tengo un programa WinForms escrito en .NET 2 que aloja un control de webbrowser y muestra páginas asp.net desde un servidor conocido.
Me gustaría poder arrastrar, digamos, 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 desencadene un evento de javascript allí. Actualmente, puedo implementar la interfaz IDocHostUIHandler
y obtener eventos drag / drop en el control del navegador, luego llamar a Navigate("javascript:fire_event(...)")
en el control para ejecutar un script en la página. Sin embargo, quiero que esto funcione solo cuando dejo caer datos en una parte específica de la página.
Una solución, supongo, sería morder la bala y escribir un complemento de navegador personalizado en la forma de un control activex, insertarlo en la ubicación que quiero soltar y dejar que implemente las interfaces drag / drop necesarias.
Funcionaría eso? ¿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?
Si puede encontrar la posición en pantalla de la parte de la página que le interesa, puede comparar esto con la posición del mouse 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 usando javascript?