Glisați și aruncați la un control browser gazduit

Am un program WinForms scris pe .NET 2 care găzduiește un control webbrowser și redă paginile asp.net de la un server cunoscut.

Aș dori să pot glisa, de exemplu, un nod de copaci dintr-o vizualizare arborescentă în aplicația mea winforms într-o anumită locație din pagina web găzduită și să o declanșeze într-un eveniment javascript. În prezent, pot implementa interfața IDocHostUIHandler și obținerea drag \ drop events în controlul browserului, apoi apelează Navigate ("javascript: fire_event (...)") controlați pentru a executa un script pe pagină. Cu toate acestea, vreau ca acest lucru să funcționeze numai atunci când renunț la date pe o parte specifică a paginii.

O soluție, presupun, ar fi să mușcăm glonțul și să scriem un plugin de browser personalizat sub forma unui control activ, să încorporăm că în locația pe care vreau să o las și să las să implementeze interfețele drag / drop necesare.

Ar lucra asta? Există o abordare mai curată? Pot beneficia de faptul că controlul browserului este găzduit în aplicația mea și oferă un nivel suplimentar de interacțiune?

0
fr hi bn

2 răspunsuri

Aruncați o privire la proiectul BrowserPlus de la Yahoo.

Se pare că au construit un set de instrumente, astfel încât să nu trebuiască să faceți lucrul ăla de scriere a pluginului browser-ului.

0
adăugat

Dacă puteți afla poziția pe ecran a părții din pagină care vă interesează, puteți compara aceasta cu poziția mouse-ului atunci când primiți evenimentul drop. Nu știu cât de practică este dacă puteți obține informațiile din DOM sau nu.

Ca o alternativă, puteți implementa evenimentele mouse-ului pe partea de jos a paginii utilizând javascript?

0
adăugat