[英]How to open powerpoint from Windows 8.1 app
I am trying to build an windows 8.1 app that open powerpoint file from local computer in full screen, and within that it contain three buttons to perform next ,previous and exit.我正在尝试构建一个 Windows 8.1 应用程序,该应用程序可以全屏打开本地计算机的 powerpoint 文件,其中包含三个按钮来执行下一个、上一个和退出。 I was able to do so using winform but not in WPF.
我能够使用 winform 但在 WPF 中无法做到这一点。 In winform I used panel control in which I embedded the ppt.
在winform中,我使用了嵌入ppt的面板控件。 panel is replaced by canvas in WPF but I do not know how I can embed ppt in it.
面板被 WPF 中的画布取代,但我不知道如何在其中嵌入 ppt。 is there any other approach than this please share?
除了这个还有其他方法请分享吗? I can not use XPS as it does not support any animation.
我不能使用 XPS,因为它不支持任何动画。
//System.Diagnostics.Process.Start("POWERPNT.EXE", "C:/Users/SAURABH/Desktop/office/Engineer's.pptx");
// Microsoft.Office.Interop.PowerPoint.Application application;
// // For Display in Panel
// IntPtr screenClasshWnd = (IntPtr)0;
// IntPtr x = (IntPtr)0;
// application = new Microsoft.Office.Interop.PowerPoint.Application();
// Microsoft.Office.Interop.PowerPoint.Presentation presentation = application.Presentations.Open(@"C:\Users\delink\Documents\SAMPLE_PPT.pptx", MsoTriState.msoTrue, MsoTriState.msoTrue, MsoTriState.msoFalse);
// pptViewPanel.Children.Add(application as Control);
// //pptViewPanel.Controls.Add(application as Control);
// Microsoft.Office.Interop.PowerPoint.SlideShowSettings sst1 = presentation.SlideShowSettings;
// sst1.LoopUntilStopped = Microsoft.Office.Core.MsoTriState.msoTrue;
// Microsoft.Office.Interop.PowerPoint.Slides objSlides = presentation.Slides;
// sst1.LoopUntilStopped = MsoTriState.msoTrue;
// sst1.StartingSlide = 1;
// sst1.EndingSlide = objSlides.Count;
// // pptViewPanel.Dock = DockStyle.Fill;
// sst1.ShowType = Microsoft.Office.Interop.PowerPoint.PpSlideShowType.ppShowTypeKiosk;
// Microsoft.Office.Interop.PowerPoint.SlideShowWindow sw = sst1.Run();
// //sw=Objssws
// oSlideShowView = presentation.SlideShowWindow.View;
// IntPtr pptptr = (IntPtr)sw.HWND;
// SetParent(pptptr, pptViewPanel.handle);**"**this where I am getting-"in 'pptviewpanel.handle'"** rror"**
Have a look at this article, it may be what you are looking for 看看这篇文章,可能是您要寻找的
How can I embed a PowerPoint presentation into a WPF application without opening another window? 如何在不打开另一个窗口的情况下将PowerPoint演示文稿嵌入到WPF应用程序中?
or a more comprehensive answer at: 或更全面的答案:
http://www.codeproject.com/Articles/118676 http://www.codeproject.com/Articles/118676
You could convert your presentation to a video format on-the-fly: 您可以即时将演示文稿转换为视频格式:
// not tested as I don't have the Office 2010, but should work
private string GetVideoFromPpt(string filename)
{
var app = new PowerPoint.Application();
var presentation = app.Presentations.Open(filename, MsoTriState.msoTrue, MsoTriState.msoTrue, MsoTriState.msoFalse);
var wmvfile = Guid.NewGuid().ToString() + ".wmv";
var fullpath = Path.GetTempPath() + filename;
try
{
presentation.CreateVideo(wmvfile);
presentation.SaveCopyAs(fullpath, PowerPoint.PpSaveAsFileType.ppSaveAsWMV, MsoTriState.msoCTrue);
}
catch (COMException ex)
{
wmvfile = null;
}
finally
{
app.Quit();
}
return wmvfile;
}
And then you would play it with MediaElement: 然后,您可以使用MediaElement进行播放:
<MediaElement Name="player" LoadedBehavior="Manual" UnloadedBehavior="Stop" />
public void PlayPresentation(string filename)
{
var wmvfile = GetVideoFromPpt(filename);
player.Source = new Uri(wmvfile);
player.Play();
}
Don't forget to File.Delete(wmvfile) when you're done playing the video! 播放完视频后,不要忘了File.Delete(wmvfile)!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.