是否可以将PowerPoint Viewer嵌入到C#Windows窗体中?
我目前使用以下代码:
objApp = new PowerPoint.Application();
//objApp.Visible = MsoTriState.msoTrue;
objPresSet = objApp.Presentations;
objPres = objPresSet.Open(ppsAction.FileInfo.FullName, MsoTriState.msoTrue, MsoTriState.msoTrue, MsoTriState.msoFalse);
objSlides = objPres.Slides;
//Run the Slide show
objSSS = objPres.SlideShowSettings;
objSSS.ShowType = Microsoft.Office.Interop.PowerPoint.PpSlideShowType.ppShowTypeSpeaker;
objSSS.LoopUntilStopped = MsoTriState.msoTrue;
objSSS.Run();
WindowWrapper handleWrapper = new WindowWrapper(objPres.SlideShowWindow.HWND);
SetParent(handleWrapper.Handle, this.ApplicationPanel.Handle);
this.ApplicationPanel.Visible = true;
objPres.SlideShowWindow.Height = ApplicationPanel.Height;
objPres.SlideShowWindow.Width = ApplicationPanel.Width;
objPres.SlideShowWindow.Top = 0;
objPres.SlideShowWindow.Left = 0;
Run Code Online (Sandbox Code Playgroud)
它在表单上显示查看器,但放置和大小调整是错误的.如何正确放置和放置它.
另一种选择:
我遇到过Aximp.exe应用程序,用于在C#中显示Win窗体上的ActiveX控件.我如何在PPT Viewer中使用它?
目前我在C#中有一个WPF应用程序,但我发现找到任何有用的方法将PowerPoint演示文稿嵌入到我的窗口中是非常困难的.
我在这里找到了一个解决方案:将Powerpoint节目嵌入到C#应用程序中
此解决方案产生了在另一个窗口中运行PowerPoint的问题,但只是在WPF应用程序中显示其UI.这意味着当WPF窗口被聚焦时,PowerPoint演示文稿没有,并且停止播放.当窗口关闭时,还存在PowerPoint崩溃的问题.
我找到的另一个解决方案是:http://www.codeproject.com/Articles/118676/Embedding-PowerPoint-presentation-player-into-a-WP
解决方案很受欢迎,但我发现它很难处理.我不知道任何Win32编程,或者是C++,所以我发现它很难修改.我设法让它停止显示PowerPoint的第二个副本(原始项目中的预期功能),但我还没有找到一种方法来自动打开PowerPoint演示文稿.
所以我需要的是一种自动和在后台干净地打开PowerPoint演示文稿的方法(我不希望在任何时候显示PowerPoint UI),并允许它自动运行(而不是响应输入)应用程序正在运行.如果我能将它保存在C#和WPF中,并且不必处理Win32和C++,那将是非常好的.
这可能吗?在这一点上,我真的后悔这个项目只是因为PowerPoint集成的麻烦.