This commit is contained in:
2025-09-13 19:10:40 +08:00
parent 40edb4c8de
commit 879dfcea28
2 changed files with 12 additions and 27 deletions
-26
View File
@@ -204,32 +204,6 @@ namespace Ink_Canvas.Helpers
return LoadSlideStrokes(slideIndex);
}
// 如果有当前墨迹,先保存到正确的页面
if (currentStrokes != null && currentStrokes.Count > 0)
{
// 否则使用传入的页面索引,确保墨迹保存到正确的页面
int saveToSlideIndex;
if (_lockedSlideIndex > 0 && DateTime.Now < _inkLockUntil && _lockedSlideIndex != slideIndex)
{
saveToSlideIndex = _lockedSlideIndex;
LogHelper.WriteLogToFile($"使用锁定页面保存墨迹: {saveToSlideIndex} -> {slideIndex}", LogHelper.LogType.Trace);
}
else
{
saveToSlideIndex = slideIndex;
}
// 确保页面索引有效
if (saveToSlideIndex > 0 && saveToSlideIndex < _memoryStreams.Length)
{
SaveCurrentSlideStrokes(saveToSlideIndex, currentStrokes);
LogHelper.WriteLogToFile($"已保存第{saveToSlideIndex}页墨迹,墨迹数量: {currentStrokes.Count}", LogHelper.LogType.Trace);
}
else
{
LogHelper.WriteLogToFile($"页面索引无效,无法保存墨迹: {saveToSlideIndex}", LogHelper.LogType.Warning);
}
}
// 设置墨迹锁定
LockInkForSlide(slideIndex);
+12 -1
View File
@@ -1096,7 +1096,18 @@ namespace Ink_Canvas
{
try
{
var newStrokes = _multiPPTInkManager?.SwitchToSlide(newSlideIndex, inkCanvas.Strokes);
// 获取当前页面索引
var currentSlideIndex = _pptManager?.GetCurrentSlideNumber() ?? 0;
// 如果有当前墨迹且不是第一次切换,先保存到当前页面
if (inkCanvas.Strokes.Count > 0 && currentSlideIndex > 0 && currentSlideIndex != newSlideIndex)
{
_multiPPTInkManager?.SaveCurrentSlideStrokes(currentSlideIndex, inkCanvas.Strokes);
LogHelper.WriteLogToFile($"切换前保存第{currentSlideIndex}页墨迹,墨迹数量: {inkCanvas.Strokes.Count}", LogHelper.LogType.Trace);
}
// 切换到新页面并加载墨迹
var newStrokes = _multiPPTInkManager?.SwitchToSlide(newSlideIndex, null);
if (newStrokes != null)
{
inkCanvas.Strokes.Clear();