improve:PPT翻页打断
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using Microsoft.Office.Interop.PowerPoint;
|
||||
using Microsoft.Office.Core;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
@@ -718,7 +719,7 @@ namespace Ink_Canvas.Helpers
|
||||
}
|
||||
}
|
||||
|
||||
public bool TryNavigateNext()
|
||||
public bool TryNavigateNext(bool skipAnimations = false)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -729,7 +730,54 @@ namespace Ink_Canvas.Helpers
|
||||
if (slideShowWindow?.View != null)
|
||||
{
|
||||
slideShowWindow.Activate();
|
||||
slideShowWindow.View.Next();
|
||||
|
||||
var view = slideShowWindow.View;
|
||||
var currentPosition = 0;
|
||||
var totalSlides = 0;
|
||||
|
||||
try
|
||||
{
|
||||
currentPosition = view.CurrentShowPosition;
|
||||
totalSlides = slideShowWindow.Presentation?.Slides?.Count ?? 0;
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
view.Next();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
LogHelper.WriteLogToFile($"调用下一页失败: {ex}", LogHelper.LogType.Warning);
|
||||
}
|
||||
|
||||
if (skipAnimations && currentPosition > 0 && totalSlides > 0)
|
||||
{
|
||||
int positionAfterNext = currentPosition;
|
||||
try
|
||||
{
|
||||
positionAfterNext = view.CurrentShowPosition;
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
|
||||
if (positionAfterNext == currentPosition && currentPosition < totalSlides)
|
||||
{
|
||||
try
|
||||
{
|
||||
view.GotoSlide(currentPosition + 1, MsoTriState.msoTrue);
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
LogHelper.WriteLogToFile($"强制跳转到下一页失败: {ex}", LogHelper.LogType.Warning);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
||||
@@ -1533,7 +1533,7 @@ namespace Ink_Canvas
|
||||
strokesToSave = inkCanvas.Strokes.Clone();
|
||||
}
|
||||
|
||||
if (_pptManager?.TryNavigateNext() == true)
|
||||
if (_pptManager?.TryNavigateNext(skipAnimations: true) == true)
|
||||
{
|
||||
var currentSlideAfterNavigate = _pptManager?.GetCurrentSlideNumber() ?? 0;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user