我需要一个WebBrowser控件,设置为一个特定的URL,嵌入在PowerPoint幻灯片中。
我已经离开了Shape shape = s.Shapes.AddOLEObject(0.0f, 0.0f, 720f, 540f, "Shell.Explorer.2", "", MsoTriState.msoFalse, "", -1, "", MsoTriState.msoFalse);
shape.OLEFormat.Object.Navigate2("http://www.google.com");
到目前为止一切顺利,它的效果非常好。但是,每次幻灯片在演示期间更改时,我都需要刷新页面。出于这个原因,我正在做以下事情来刷新页面:
void Application_SlideShowNextSlide(SlideShowWindow Wn)
{
Slide sl = Wn.View.Slide;
foreach (Shape s in sl.Shapes)
{
if (s.Type == Office.MsoShapeType.msoOLEControlObject) {
if (s.OLEFormat.Object is SHDocVw.IWebBrowser2) {
SHDocVw.IWebBrowser2 wb = s.OLEFormat.Object as SHDocVw.IWebBrowser2;
object url = (object)"http://google.com/";
wb.Navigate2(url);
}
}
}
}
页面正确刷新。但是,现在的不同之处在于页面自动缩小,因此页面适合控件内部。即使我将控件设置得更小,页面也会被缩小甚至更多,以适应它内部。
答案 0 :(得分:1)
我通过创建自定义用户控件并在其中插入WebControl来解决此问题。然后,我将控件设置为“COM Visible”,因此,我可以使用它的ProgId将它完美地包含在PowerPoint中。
答案 1 :(得分:0)
这是因为您将幻灯片上的所有形状更改为该控件,包括幻灯片本身。 您需要添加一种方法来区分控件和其他控件。 只是检查是否有东西,有一个OLE控件对象是不够的。
http://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.oleobject_properties%28v=vs.90%29.aspx 您可以使用应用程序属性或名称或其他来比较事物。 (其他选择是尺寸,组合)