目前我在C#中有一个WPF应用程序,但我发现找到任何有用的方法将PowerPoint演示文稿嵌入到我的窗口中是非常困难的 .
我在这里找到一个解决方案:Embedding a Powerpoint show into a C# application
此解决方案产生了在另一个窗口中运行PowerPoint的问题,但只是在WPF应用程序中显示其UI . 这意味着当WPF窗口被聚焦时,PowerPoint演示文稿没有,并且停止播放 . 当窗口关闭时,还存在PowerPoint崩溃的问题 .
我发现的另一个解决方案是:http://www.codeproject.com/Articles/118676/Embedding-PowerPoint-presentation-player-into-a-WP
解决方案很受欢迎,但我发现它很难处理 . 我不知道任何Win32编程,OR C,所以我发现它很难修改 . 我设法让它停止显示PowerPoint的第二个副本(原始项目中的预期功能),但我还没有找到一种方法来自动打开PowerPoint演示文稿 .
所以我需要的是一种自动和在后台干净地打开PowerPoint演示文稿的方法(我不希望在任何时候显示PowerPoint UI),并允许它自动运行(而不是响应输入)应用程序正在运行 . 如果我能将它保存在C#和WPF中,并且不必处理Win32和C,那将是非常好的 .
这可能吗?在这一点上,我真的后悔这个项目只是因为PowerPoint集成的麻烦 .
4 回答
您可以即时将演示文稿转换为视频格式:
然后你会用
MediaElement
来玩它:当你完成视频播放时别忘了
File.Delete(wmvfile)
!使用/ s标志通过命令行启动演示文稿将播放幻灯片,而不启动启动画面 .
我会尝试与你提到的一些WPF嵌入式解决方案一起或者看看this approach .
我对WPF知之甚少,所以希望有人可以提供更好的答案,包含所有这些部分 .
我真的不喜欢它,我肯定是这样的 . 然而,它相当容易和轻量级 .
我的基本想法是以某种方式将powerpoint演示文稿嵌入到html中,并使用webbrowser控件来显示它 . 似乎有一个number of ways这样做 .
我决定尝试将演示文稿直接保存为html,结果证明是可能的(至少对于PP2010而言),尽管布局可能更好 . 另一种方法(例如谷歌文档)可能会产生更好的效果 . 我从link获取了以下内容 .
在PowerPoint 2010中,打开要导出为HTML的演示文稿
按Alt F11 .
按Ctrl G.
在“立即”窗格中,键入以下内容,然后按Enter键:
ActivePresentation.SaveAs "<Drive>:\users\<username>\desktop\<filename>.htm", ppSaveAsHTML, msoFalse
Note 要使用单个文件网页(* .mht; * .mhtml)文件格式进行保存,请将文件名末尾的htm替换为 mht ,并将ppSaveAsHTML替换为 ppSaveAsWebArchive .
如果你用htm导出它,你会得到很多额外的文件,因为它只是一个文件,所以更适合我 . 我非常确定如果您需要对解决方案进行通用化,也可以在代码中自动执行此步骤 .
要在webbrowser控件中显示html文件是很容易的部分,为了方便起见我将它上传到我的Dropbox并设置了源代码(如果你想直接查看它,我会把它放在那里几天) .
至于立即开始幻灯片放映,我将不得不再研究一下 .
有一个名为
DocumentViewer
的WPF控件 .首先应将pptx转换为.xps文件格式 .
然后将其绑定到DocumentViewer的
Document
属性 .Here是将Office文档(包括
pptx
)转换为C sharp中的XPS的链接 .XAML
绑定到控件的
Document
属性(注意ConvertPptxDocToXPSDoc
是将pptx转换为xps的方法)