fix:进入PPT自动收纳
This commit is contained in:
@@ -260,12 +260,11 @@ namespace Ink_Canvas
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 只有在PPT放映模式下且页数有效时才显示翻页按钮
|
// 只有在PPT放映模式下且页数有效时才显示翻页按钮
|
||||||
// 但是,如果启用了PPT自动收纳功能,则不显示翻页按钮
|
// 翻页按钮的显示应该基于PPT放映状态,而不是自动收纳设置
|
||||||
if (StackPanelPPTControls.Visibility == Visibility.Visible &&
|
if (StackPanelPPTControls.Visibility == Visibility.Visible &&
|
||||||
BtnPPTSlideShowEnd.Visibility == Visibility.Visible &&
|
BtnPPTSlideShowEnd.Visibility == Visibility.Visible &&
|
||||||
PPTManager?.IsInSlideShow == true &&
|
PPTManager?.IsInSlideShow == true &&
|
||||||
PPTManager?.SlidesCount > 0 &&
|
PPTManager?.SlidesCount > 0)
|
||||||
!Settings.Automation.IsAutoFoldInPPTSlideShow)
|
|
||||||
{
|
{
|
||||||
var dops = Settings.PowerPointSettings.PPTButtonsDisplayOption.ToString();
|
var dops = Settings.PowerPointSettings.PPTButtonsDisplayOption.ToString();
|
||||||
var dopsc = dops.ToCharArray();
|
var dopsc = dops.ToCharArray();
|
||||||
@@ -273,7 +272,7 @@ namespace Ink_Canvas
|
|||||||
if (dopsc[1] == '2' && !isDisplayingOrHidingBlackboard) AnimationsHelper.ShowWithFadeIn(RightBottomPanelForPPTNavigation);
|
if (dopsc[1] == '2' && !isDisplayingOrHidingBlackboard) AnimationsHelper.ShowWithFadeIn(RightBottomPanelForPPTNavigation);
|
||||||
if (dopsc[2] == '2' && !isDisplayingOrHidingBlackboard) AnimationsHelper.ShowWithFadeIn(LeftSidePanelForPPTNavigation);
|
if (dopsc[2] == '2' && !isDisplayingOrHidingBlackboard) AnimationsHelper.ShowWithFadeIn(LeftSidePanelForPPTNavigation);
|
||||||
if (dopsc[3] == '2' && !isDisplayingOrHidingBlackboard) AnimationsHelper.ShowWithFadeIn(RightSidePanelForPPTNavigation);
|
if (dopsc[3] == '2' && !isDisplayingOrHidingBlackboard) AnimationsHelper.ShowWithFadeIn(RightSidePanelForPPTNavigation);
|
||||||
LogHelper.WriteLogToFile($"从收纳模式恢复时显示PPT翻页按钮 - 放映状态: {PPTManager?.IsInSlideShow}, 页数: {PPTManager?.SlidesCount}", LogHelper.LogType.Trace);
|
LogHelper.WriteLogToFile($"从收纳模式恢复时显示PPT翻页按钮 - 放映状态: {PPTManager?.IsInSlideShow}, 页数: {PPTManager?.SlidesCount}, 自动收纳: {Settings.Automation.IsAutoFoldInPPTSlideShow}", LogHelper.LogType.Trace);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -741,12 +741,11 @@ namespace Ink_Canvas
|
|||||||
HideSubPanelsImmediately();
|
HideSubPanelsImmediately();
|
||||||
|
|
||||||
// 只有在PPT放映模式下且页数有效时才显示翻页按钮
|
// 只有在PPT放映模式下且页数有效时才显示翻页按钮
|
||||||
// 但是,如果启用了PPT自动收纳功能,则不显示翻页按钮
|
// 翻页按钮的显示应该基于PPT放映状态,而不是自动收纳设置
|
||||||
if (StackPanelPPTControls.Visibility == Visibility.Visible &&
|
if (StackPanelPPTControls.Visibility == Visibility.Visible &&
|
||||||
BtnPPTSlideShowEnd.Visibility == Visibility.Visible &&
|
BtnPPTSlideShowEnd.Visibility == Visibility.Visible &&
|
||||||
PPTManager?.IsInSlideShow == true &&
|
PPTManager?.IsInSlideShow == true &&
|
||||||
PPTManager?.SlidesCount > 0 &&
|
PPTManager?.SlidesCount > 0)
|
||||||
!Settings.Automation.IsAutoFoldInPPTSlideShow)
|
|
||||||
{
|
{
|
||||||
var dops = Settings.PowerPointSettings.PPTButtonsDisplayOption.ToString();
|
var dops = Settings.PowerPointSettings.PPTButtonsDisplayOption.ToString();
|
||||||
var dopsc = dops.ToCharArray();
|
var dopsc = dops.ToCharArray();
|
||||||
@@ -754,7 +753,7 @@ namespace Ink_Canvas
|
|||||||
if (dopsc[1] == '2' && !isDisplayingOrHidingBlackboard) AnimationsHelper.ShowWithFadeIn(RightBottomPanelForPPTNavigation);
|
if (dopsc[1] == '2' && !isDisplayingOrHidingBlackboard) AnimationsHelper.ShowWithFadeIn(RightBottomPanelForPPTNavigation);
|
||||||
if (dopsc[2] == '2' && !isDisplayingOrHidingBlackboard) AnimationsHelper.ShowWithFadeIn(LeftSidePanelForPPTNavigation);
|
if (dopsc[2] == '2' && !isDisplayingOrHidingBlackboard) AnimationsHelper.ShowWithFadeIn(LeftSidePanelForPPTNavigation);
|
||||||
if (dopsc[3] == '2' && !isDisplayingOrHidingBlackboard) AnimationsHelper.ShowWithFadeIn(RightSidePanelForPPTNavigation);
|
if (dopsc[3] == '2' && !isDisplayingOrHidingBlackboard) AnimationsHelper.ShowWithFadeIn(RightSidePanelForPPTNavigation);
|
||||||
LogHelper.WriteLogToFile($"显示PPT翻页按钮 - 放映状态: {PPTManager?.IsInSlideShow}, 页数: {PPTManager?.SlidesCount}", LogHelper.LogType.Trace);
|
LogHelper.WriteLogToFile($"显示PPT翻页按钮 - 放映状态: {PPTManager?.IsInSlideShow}, 页数: {PPTManager?.SlidesCount}, 自动收纳: {Settings.Automation.IsAutoFoldInPPTSlideShow}", LogHelper.LogType.Trace);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -627,6 +627,11 @@ namespace Ink_Canvas
|
|||||||
if (!isFloatingBarFolded)
|
if (!isFloatingBarFolded)
|
||||||
FoldFloatingBar_MouseUp(new object(), null);
|
FoldFloatingBar_MouseUp(new object(), null);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// 如果关闭了自动收纳功能,重置状态记录,确保退出时不会错误收纳
|
||||||
|
wasFloatingBarFoldedWhenEnterSlideShow = false;
|
||||||
|
}
|
||||||
|
|
||||||
isStopInkReplay = true;
|
isStopInkReplay = true;
|
||||||
|
|
||||||
@@ -776,14 +781,27 @@ namespace Ink_Canvas
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
// 处理浮动栏状态:严格按进入前的状态恢复
|
// 处理浮动栏状态:根据自动收纳功能状态和进入前的状态恢复
|
||||||
if (wasFloatingBarFoldedWhenEnterSlideShow)
|
if (Settings.Automation.IsAutoFoldInPPTSlideShow)
|
||||||
{
|
{
|
||||||
if (!isFloatingBarFolded) FoldFloatingBar_MouseUp(new object(), null);
|
// 只有在启用自动收纳功能时才根据记录的状态恢复
|
||||||
|
if (wasFloatingBarFoldedWhenEnterSlideShow)
|
||||||
|
{
|
||||||
|
if (!isFloatingBarFolded) FoldFloatingBar_MouseUp(new object(), null);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (isFloatingBarFolded) await UnFoldFloatingBar(new object());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (isFloatingBarFolded) await UnFoldFloatingBar(new object());
|
// 如果关闭了自动收纳功能,确保浮动栏展开
|
||||||
|
if (isFloatingBarFolded)
|
||||||
|
{
|
||||||
|
await UnFoldFloatingBar(new object());
|
||||||
|
LogHelper.WriteLogToFile("PPT自动收纳功能已关闭,强制展开浮动栏", LogHelper.LogType.Trace);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isEnteredSlideShowEndEvent) return;
|
if (isEnteredSlideShowEndEvent) return;
|
||||||
@@ -1068,6 +1086,38 @@ namespace Ink_Canvas
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 重置PPT相关的状态变量,当PPT自动收纳设置变更时调用
|
||||||
|
/// </summary>
|
||||||
|
public void ResetPPTStateVariables()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// 重置进入PPT时的浮动栏收纳状态记录
|
||||||
|
wasFloatingBarFoldedWhenEnterSlideShow = false;
|
||||||
|
|
||||||
|
// 重置PPT放映结束事件标志
|
||||||
|
isEnteredSlideShowEndEvent = false;
|
||||||
|
|
||||||
|
// 重置演示文稿黑边状态
|
||||||
|
isPresentationHaveBlackSpace = false;
|
||||||
|
|
||||||
|
// 重置上次播放位置相关字段
|
||||||
|
_lastPlaybackPage = 0;
|
||||||
|
_shouldNavigateToLastPage = false;
|
||||||
|
|
||||||
|
// 重置页面切换防抖机制
|
||||||
|
_lastSlideSwitchTime = DateTime.MinValue;
|
||||||
|
_pendingSlideIndex = -1;
|
||||||
|
|
||||||
|
LogHelper.WriteLogToFile("PPT状态变量已重置", LogHelper.LogType.Trace);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
LogHelper.WriteLogToFile($"重置PPT状态变量失败: {ex.Message}", LogHelper.LogType.Error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 使用防抖机制处理页面切换
|
/// 使用防抖机制处理页面切换
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -1406,7 +1406,18 @@ namespace Ink_Canvas
|
|||||||
private void ToggleSwitchAutoFoldInPPTSlideShow_Toggled(object sender, RoutedEventArgs e)
|
private void ToggleSwitchAutoFoldInPPTSlideShow_Toggled(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
if (!isLoaded) return;
|
if (!isLoaded) return;
|
||||||
|
|
||||||
|
// 记录设置变更前的状态
|
||||||
|
bool previousState = Settings.Automation.IsAutoFoldInPPTSlideShow;
|
||||||
Settings.Automation.IsAutoFoldInPPTSlideShow = ToggleSwitchAutoFoldInPPTSlideShow.IsOn;
|
Settings.Automation.IsAutoFoldInPPTSlideShow = ToggleSwitchAutoFoldInPPTSlideShow.IsOn;
|
||||||
|
|
||||||
|
// 如果设置状态发生变化,重置PPT相关状态变量
|
||||||
|
if (previousState != Settings.Automation.IsAutoFoldInPPTSlideShow)
|
||||||
|
{
|
||||||
|
ResetPPTStateVariables();
|
||||||
|
LogHelper.WriteLogToFile($"PPT自动收纳设置已变更: {Settings.Automation.IsAutoFoldInPPTSlideShow}, 已重置相关状态变量", LogHelper.LogType.Trace);
|
||||||
|
}
|
||||||
|
|
||||||
if (Settings.Automation.IsAutoFoldInPPTSlideShow)
|
if (Settings.Automation.IsAutoFoldInPPTSlideShow)
|
||||||
{
|
{
|
||||||
SettingsPPTInkingAndAutoFoldExplictBorder.Visibility = Visibility.Visible;
|
SettingsPPTInkingAndAutoFoldExplictBorder.Visibility = Visibility.Visible;
|
||||||
|
|||||||
Reference in New Issue
Block a user