Glisser-déposer vers un champ Navigateur hébergé

J'ai un programme WinForms écrit sur .NET 2 qui héberge un contrôle de navigateur Web et rend les pages asp.net à partir d'un serveur connu.

J'aimerais pouvoir faire glisser, par exemple, un nœud d'arborescence d'une arborescence de mon application winforms vers un emplacement spécifique de la page Web hébergée et le faire déclencher un événement javascript à cet endroit. Actuellement, je peux implémenter l'interface IDocHostUIHandler et obtenir des événements dragdrop sur le contrôle du navigateur, puis appeler Navigate('javascript:fire_event(...)') sur le contrôle pour exécuter un script sur la page. Cependant, je souhaite que cela ne fonctionne que lorsque je dépose des données sur une partie spécifique de la page.

Une solution, je suppose, serait de mordre la balle et d'écrire un plug-in de navigateur personnalisé sous la forme d'un contrôle ActiveX, de l'intégrer à l'emplacement où je veux déposer et de laisser cela implémenter les interfaces dragdrop nécessaires.

Cela fonctionnerait-il ? Existe-t-il une approche plus propre ? Puis-je profiter du fait que le contrôle du navigateur est hébergé dans mon application et fournir un niveau d'interaction supplémentaire ?

请先 登录 后评论

1 réponses

Ben Childs

Si vous pouvez connaître la position à l'écran de la partie de la page qui vous intéresse, vous pouvez la comparer avec la position de la souris lorsque vous recevez l'événement drop. Je ne sais pas à quel point c'est pratique si vous pouvez obtenir les informations du DOM ou autre.

Comme alternative, pourriez-vous implémenter les événements de la souris sur la partie de la page en utilisant javascript ?

请先 登录 后评论
  • 26 abonnés
  • 0 favoris,596 Feuilleter
  • HS. posée à 2023-03-22 12:13