Перетащите в размещенный элемент управления Browser

У меня есть программа WinForms, написанная на .NET 2, которая содержит веб-браузер и отображает страницы asp.net с известного сервера.

Я хотел бы иметь возможность перетаскивать, скажем, узел дерева из дерева в моем приложении winforms в определенное место на размещенной веб-странице и запускать там событие javascript. В настоящее время я могу реализовать IDocHostUIHandlerинтерфейс и получать события перетаскивания в элементе управления браузера, а затем вызывать Navigate("javascript:fire_event(...)")элемент управления для выполнения сценария на странице. Однако я хочу, чтобы это работало только тогда, когда я перетаскиваю данные в определенную часть страницы.

Я полагаю, что одним из решений было бы прикусить пулю и написать собственный плагин для браузера в виде элемента управления ActiveX, внедрить его в место, куда я хочу перейти, и позволить ему реализовать необходимые интерфейсы перетаскивания.

Будет ли это работать? Есть ли более чистый подход? Могу ли я воспользоваться тем, что элемент управления браузером размещен в моем приложении, и обеспечить некоторый дополнительный уровень взаимодействия?

7.08.2008 15:22:40
2 ОТВЕТА

Взгляните на проект BrowserPlus на Yahoo.

Похоже, что они создали инструментарий, так что вам не нужно выполнять всю работу по написанию плагина для браузера самостоятельно.

3
9.09.2011 09:51:26

Если вы можете узнать положение на экране интересующей вас части страницы, вы можете сравнить ее с положением мыши при получении события перетаскивания. Я не уверен, насколько это практично, если вы можете получить информацию из DOM или еще много чего.

В качестве альтернативы вы могли бы реализовать события мыши на части страницы, используя JavaScript?

1
27.08.2008 04:52:30