问题
VSTO开发中,可以使用winform
wpf
这些进行开发, 但是这些都不如web
开发者多,学习周期和通用性都不是很高,所以我决定找一个用web
展示UI的方案
winform
中是可以使用webbrowser
控件的,并且可以进行本地通讯,嵌入web的方案整体是ok的
踩坑
内置webbrowser
内置的webbrowser
是 ie内核
对ie内核…
于是笔者查看了市面上其他的插件发现大家都用的是cefsharp
,然鹅很不幸的是,这东西又大又不好集成,费了九牛二虎之力也没能集成到VSTO里面,各种报错
webview2
幸运的是巨硬刚刚推出的webview2
完美符合我的要求,集成也非常简单,下面就来看下webview2如何集成到VSTO的插件之中,下面是集成之后的预览,UI不用愁啦,哈哈
创建一个VSTO程序
取名PowerPointAddIn-Webview2
Framework版本4.6.2
或以上
创建完成后
安装webview2
打开NuGet 搜索WebView2
找到 Microsoft.Web.WebView2
就可以安装上了,怎么样 够简单吧
集成到winform
右键方案->Add New Item
->Form(Winfows Forms)
在winform
的toolbox
中找到webview2
拖入form中调整一下属性
Dock
属性使其铺满formSource
中填写要访问的网址, 这里我用了three.js
的测试地址(http://www.webgl3d.cn/threejs/examples/?q=MMD#webgl_loader_mmd)
测试结果
修改ThisAddIn.cs
中直接弹出winform
窗口
F5运行!(由于3d模型比较大,要加载一会才行)
目前webview2已经集成进来,交互问题我们下一次再说,这个其实可以扩展到很多地方,巨硬明显是想抢electron
的份额,并且win11天然集成webview2
,有兴趣的小伙伴可以研究一下哦