6
我想要做的是從我的WPF應用程序控制Powerpoint演示文稿。 用這個問題的代碼: C# - way to programmatically advance Powerpoint slide show? 它對正常的幻燈片工作得很好。使用點擊動畫以編程方式推進Powerpoint幻燈片
但是,只要我滑動鼠標點擊觸發的動畫,它就不會像我期望的那樣工作。 進入這樣的幻燈片時,它會按預期顯示,但當我調用objPres.SlideShowWindow.View.Next()時,它什麼都不做,在第二次或第三次單擊後,它會直接跳到下一張幻燈片,否動畫。
奇怪的是: 當我通過Timer調用objPres.SlideShowWindow.View.Next()時,它的工作原理!動畫按預期運行。
這是我的代碼:
Microsoft.Office.Interop.PowerPoint.Application oPPT;
Microsoft.Office.Interop.PowerPoint.Presentations objPresSet;
Microsoft.Office.Interop.PowerPoint.Presentation objPres;
Microsoft.Office.Interop.PowerPoint.SlideShowView oSlideShowView;
Timer slidetest;
private void OpenPPT(object sender, RoutedEventArgs e)
{
//Create an instance of PowerPoint.
oPPT = new Microsoft.Office.Interop.PowerPoint.Application();
// Show PowerPoint to the user.
oPPT.Visible = Microsoft.Office.Core.MsoTriState.msoTrue;
objPresSet = oPPT.Presentations;
OpenFileDialog Opendlg = new OpenFileDialog();
Opendlg.Filter = "Powerpoint|*.ppt;*.pptx|All files|*.*";
// Open file when user click "Open" button
if (Opendlg.ShowDialog() == true)
{
string pptFilePath = Opendlg.FileName;
//open the presentation
objPres = objPresSet.Open(pptFilePath, MsoTriState.msoFalse,
MsoTriState.msoTrue, MsoTriState.msoTrue);
objPres.SlideShowSettings.ShowPresenterView = MsoTriState.msoFalse;
System.Diagnostics.Debug.WriteLine(objPres.SlideShowSettings.ShowWithAnimation);
objPres.SlideShowSettings.Run();
oSlideShowView = objPres.SlideShowWindow.View;
slidetest = new Timer(4000);
slidetest.AutoReset = false;
slidetest.Elapsed += new ElapsedEventHandler(slidetest_Elapsed);
slidetest.Start();
}
}
void slidetest_Elapsed(object sender, ElapsedEventArgs e)
{
// this works as expected
oSlideShowView.Next();
}
private void OnNextClicked(object sender, RoutedEventArgs e)
{
// this doesn't work, animations aren't shown at all.
oSlideShowView.Next();
}
我相信這是一件很容易,我忽視的東西。但我在這上面敲了很長時間:(
在這種情況下,可能的問題是,有自動運行的定時動畫,如果是的話,我懷疑PPT不會來應對呢? oSlideShowView.Next直到它完成處理動畫 –
@ steve-rindsberg不,在我測試的PPT中沒有定時動畫。我已經創建了一個測試項目並將其上傳到https:// skydrive。 live.com/redir.aspx?cid=edd93823761d5c8e&resid=EDD93823761D5C8E!10340&parid=EDD93823761D5C8E!139&authkey=!AMpcxEYSf90vv24,如果你想看看它(也有一個測試PPT在這個拉鍊,它只有兩個幻燈片,與第一張幻燈片上的點擊動畫)。 – Malyngo
我不是一個C(鋒利,平坦,加號,減號)的傢伙,我現在淹沒了。如果我有時間看,這無關緊要。抱歉。 –