|
08.02.2024, 15:30 | #1 |
Участник
|
Насколько я помню, ActiveX WebBrowser реализован на основании API какого-то древнего IE (кажется 7го) и заставить его отображать страницы, как это делают современные браузеры, не получится. Он для этого и добавляет к станице режим совместимости, потому что по другому отображать не умеет. Поэтому style="border:none", в данном случае, вполне нормальный вариант, по-моему
|
|
|
За это сообщение автора поблагодарили: Logger (3). |
08.02.2024, 18:36 | #2 |
Участник
|
Версия ieframe.dll зависит от версии OS.
Webview2 - для целей Аксапты подходит тот, что относится к windows forms (Microsoft.Web.WebView2.WinForms). Целевой объект, который нужно добавить в Аксапту - Microsoft.Web.WebView2.WinForms.WebView2, наследник от System.Windows.Forms.Control. Проблема здесь в связи этого объекта, который создать не сложно, с самой формой. В windows forms форма - класс наследник от System.Windows.Forms.Form, она же является наследником от System.Windows.Forms.Control. Только форма Аксапты что-то своё. Объектов Аксапты наследованных от System.Windows.Forms.Control по пальцам пересчитать. Как ни странно один из таких объектов - ActionPane. В теории можно сконвертировать ActionPane в System.Windows.Forms.Control X++: ptr = new System.IntPtr(ActionPane.hWnd());
control = System.Windows.Forms.Control::FromHandle(ptr); X++: collection = control.get_Controls(); Ну и добавить в него созданный экземляр webview2 через функцию add. Выглядит куда проще инициализировать саму форму .net из X++ и добавить в целевой контрол. Последний раз редактировалось Товарищ ♂uatr; 08.02.2024 в 18:39. |
|
|
За это сообщение автора поблагодарили: Logger (10). |
08.02.2024, 21:18 | #3 |
Участник
|
Не работает у меня указанный выше способ в 2009, в отличии от 2012, но в 2012 он не имеет никакого смысла по причине наличия ManagedHostControl'ов.
|
|
|
За это сообщение автора поблагодарили: Logger (15). |