【问题标题】:WebBrowser control zoomed out inside PowerPoint SlideWebBrowser 控件在 PowerPoint 幻灯片中缩小
【发布时间】:2013-09-05 20:25:54
【问题描述】:

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

页面已正确刷新。但是,现在不同的是页面会自动缩小,因此页面适合控件。即使我将控件变小,页面也会进一步缩小,以适应其中。

【问题讨论】:

  • 如果我在wb.Navigate2(url) 后面加上MessageBox.Show("TEST");,则网页缩放正确。

标签: c# .net com vsto powerpoint


【解决方案1】:

我通过创建自定义用户控件并将 WebControl 插入其中解决了这个问题。然后,我将控件设为“COM Visible”,因此,我可以使用它的 ProgId 将它完美地包含在 PowerPoint 中。

【讨论】:

    【解决方案2】:

    这是因为您将幻灯片上的所有形状都更改为该控件,包括幻灯片本身。 您需要添加一种方法来区分您的控件和其他控件。 仅检查是否存在,具有 OLE 控件对象是不够的。

    http://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.oleobject_properties%28v=vs.90%29.aspx 您可以使用应用程序属性或名称或其他来比较事物。 (其他选择是尺寸、组合)

    【讨论】:

    • 感谢您的回复。我还在检查对象是否属于 IWebBrowser2 类型,并且只处理它。此外,我不认为我在改变什么。我只是在调用控件的方法?
    猜你喜欢
    • 2011-03-01
    • 2013-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多