问题

VSTO开发中,可以使用​​winform​​ ​​wpf​​这些进行开发, 但是这些都不如​​web​​开发者多,学习周期和通用性都不是很高,所以我决定找一个用​​web​​展示UI的方案

​winform​​ 中是可以使用​​webbrowser​​控件的,并且可以进行本地通讯,嵌入web的方案整体是ok的

踩坑

内置webbrowser

内置的​​webbrowser​​ 是 ​​ie内核​​ 对ie内核...

PPT插件开发 - 在VSTO中使用webview2_webview

于是笔者查看了市面上其他的插件发现大家都用的是​​cefsharp​​,然鹅很不幸的是,这东西又大又不好集成,费了九牛二虎之力也没能集成到VSTO里面,各种报错

webview2

幸运的是巨硬刚刚推出的​​webview2​​完美符合我的要求,集成也非常简单,下面就来看下webview2如何集成到VSTO的插件之中,下面是集成之后的预览,UI不用愁啦,哈哈

PPT插件开发 - 在VSTO中使用webview2_webview_02

创建一个VSTO程序

取名​​PowerPointAddIn-Webview2​​ Framework版本​​4.6.2​​或以上

PPT插件开发 - 在VSTO中使用webview2_VSTO_03

创建完成后

PPT插件开发 - 在VSTO中使用webview2_3d_04

安装webview2

打开NuGet 搜索​​WebView2​​找到 ​​Microsoft.Web.WebView2​​就可以安装上了,怎么样 够简单吧

PPT插件开发 - 在VSTO中使用webview2_web开发_05

集成到winform

右键方案->​​Add New Item​​->​​Form(Winfows Forms)​

PPT插件开发 - 在VSTO中使用webview2_web开发_06

在​​winform​​的​​toolbox​​中找到​​webview2​​ 拖入form中调整一下属性

测试结果

修改​​ThisAddIn.cs​​中直接弹出​​winform​​窗口

PPT插件开发 - 在VSTO中使用webview2_webview_08

F5运行!(由于3d模型比较大,要加载一会才行)

PPT插件开发 - 在VSTO中使用webview2_WebView2_09

PPT插件开发 - 在VSTO中使用webview2_VSTO_10

目前webview2已经集成进来,交互问题我们下一次再说,这个其实可以扩展到很多地方,巨硬明显是想抢​​electron​​的份额,并且win11天然集成​​webview2​​,有兴趣的小伙伴可以研究一下哦