WebBrowser控件在PowerPoint幻灯片中缩小
本文关键字:缩小 幻灯片 PowerPoint 控件 WebBrowser | 更新日期: 2023-09-27 18:29:52
我需要在PowerPoint幻灯片中嵌入一个WebBrowser控件,设置为特定的URL。我选择了
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);
}
}
}
}
页面已正确刷新。然而,现在不同的是,页面会自动缩小,因此页面适合控件。即使我把控件做得更小,页面也会缩小得更大,以适应它。
我通过创建一个自定义用户控件并在其中插入WebControl来解决这个问题。然后,我将控件设置为"COM可见",因此,我可以使用它的ProgId将其完美地包含在PowerPoint中。
这是因为您将幻灯片上的所有形状都更改为该控件,包括幻灯片本身。您需要添加一种方法来区分您的控件和其他控件。仅仅检查某个对象是否为OLE控件对象是不够的。
http://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.oleobject_properties%28v=vs.90%29.aspx您可以使用应用程序属性或名称或其他来进行比较。(其他选择是大小、组合)