关于使用 VSTO C# .Net4.7.2 开发 PowerPoint 在线网页浏览插件的问题
机器人回答勿扰
如果被采纳会根据回答打赏
1.如何在 PPT 内插入一个 WebView2 网页(请给出介绍和代码示例)?(实现类似 PowerPoint 的 WebView 插件的效果)
注:本人要开发相关插件,直接使用 PowerPoint 的 WebView插件 或其他相关插件并不适用。
关于使用 VSTO C# .Net4.7.2 开发 PowerPoint 在线网页浏览插件的问题
机器人回答勿扰
如果被采纳会根据回答打赏
1.如何在 PPT 内插入一个 WebView2 网页(请给出介绍和代码示例)?(实现类似 PowerPoint 的 WebView 插件的效果)
注:本人要开发相关插件,直接使用 PowerPoint 的 WebView插件 或其他相关插件并不适用。
参考钉钉个人版人工智能:
以下是一个简单的代码示例:
using System;
using System.Windows.Forms;
using Microsoft.Office.Core;
using Microsoft.Office.Interop.PowerPoint;
namespace WebView2Example
{
public partial class MainForm : Form
{
private PowerPoint.Application pptApp;
private PowerPoint.Presentation pptPres;
private PowerPoint.Slide slide;
private PowerPoint.Shape btnWebView;
public MainForm()
{
InitializeComponent();
}
private void MainForm_Load(object sender, EventArgs e)
{
// 创建 PowerPoint 应用程序实例
pptApp = new PowerPoint.Application();
pptApp.Visible = MsoTriState.msoTrue;
// 创建新的演示文稿
pptPres = pptApp.Presentations.Add(MsoTriState.msoTrue);
slide = pptPres.Slides.Add(1, PpSlideLayout.ppLayoutTitle);
// 添加按钮并分配宏
btnWebView = slide.Shapes.AddOLEObject(MsoTriState.msoFalse, "Microsoft Forms 2010 ActiveX Control (x64)", "", 100, 100, 500, 300);
btnWebView.OLEFormat.Object.InvokeMember("Caption", Marshal.GetMethod(typeof(Button), "set_Text", new Type[] { typeof(string) }));
btnWebView.OLEFormat.Object.InvokeMember("Caption", Marshal.GetMethod(typeof(Button), "get_Text"));
btnWebView.OLEFormat.Object.InvokeMember("OnAction", Marshal.GetMethod(typeof(Button), "Click"));
}
private void btnWebView_Click(object sender, EventArgs e)
{
// 设置 WebView2 控件的 URL 属性以加载所需的网页
((Microsoft.Office.Interop.PowerPoint.WebView2)(btnWebView.OLEFormat.Object)).NavigateToString("https://www.example.com");
}
}
}
WebView2 是一个 OLE 对象,因此可以使用 Shapes.AddOLEObject()
方法将其插入到幻灯片中。当使用 Shapes.AddOLEObject()
方法时,其 ClassName 为 "Microsoft Forms 2010 ActiveX Control (x64)"。在上面的代码示例中,我们已经使用了这个 ClassName。
除了使用 WebView2 之外,还可以尝试使用其他技术来实现类似的效果。例如,可以使用 Office Add-ins SDK 开发插件,或者使用第三方库(如 Chromium)来嵌入浏览器。这些方法可能需要更多的学习和配置,但它们提供了更多的灵活性和功能。