WebBrowser控件在PowerPoint幻灯片中缩小

时间:2013-09-02 17:17:21

标签: c# .net com vsto powerpoint

我需要一个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);
                } 
            }
        }
    }

页面正确刷新。但是,现在的不同之处在于页面自动缩小,因此页面适合控件内部。即使我将控件设置得更小,页面也会被缩小甚至更多,以适应它内部。

2 个答案:

答案 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 您可以使用应用程序属性或名称或其他来比较事物。 (其他选择是尺寸,组合)