improve:PPT翻页打断

This commit is contained in:
2025-12-20 18:11:27 +08:00
parent 3287603d0a
commit 4fb73c155b
2 changed files with 51 additions and 3 deletions
+50 -2
View File
@@ -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;
+1 -1
View File
@@ -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;