add:PPT动画跳过
This commit is contained in:
@@ -41,6 +41,12 @@ namespace Ink_Canvas.Helpers
|
||||
set => _inner.IsSupportWPS = value;
|
||||
}
|
||||
|
||||
public bool SkipAnimationsWhenNavigating
|
||||
{
|
||||
get => _inner.SkipAnimationsWhenNavigating;
|
||||
set => _inner.SkipAnimationsWhenNavigating = value;
|
||||
}
|
||||
|
||||
public int SlidesCount => _inner.SlidesCount;
|
||||
|
||||
public object PPTApplication => _inner.PPTApplication;
|
||||
|
||||
@@ -16,6 +16,7 @@ namespace Ink_Canvas.Helpers
|
||||
bool IsConnected { get; }
|
||||
bool IsInSlideShow { get; }
|
||||
bool IsSupportWPS { get; set; }
|
||||
bool SkipAnimationsWhenNavigating { get; set; }
|
||||
int SlidesCount { get; }
|
||||
|
||||
object PPTApplication { get; }
|
||||
|
||||
@@ -125,6 +125,8 @@ namespace Ink_Canvas.Helpers
|
||||
}
|
||||
}
|
||||
public bool IsSupportWPS { get; set; } = false;
|
||||
public bool SkipAnimationsWhenNavigating { get; set; } = false;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Private Fields
|
||||
@@ -883,7 +885,8 @@ namespace Ink_Canvas.Helpers
|
||||
if (slideShowWindow != null)
|
||||
{
|
||||
dynamic sswObj = slideShowWindow;
|
||||
sswObj.Activate();
|
||||
if (!SkipAnimationsWhenNavigating)
|
||||
sswObj.Activate();
|
||||
view = sswObj.View;
|
||||
if (view != null)
|
||||
{
|
||||
@@ -936,7 +939,8 @@ namespace Ink_Canvas.Helpers
|
||||
if (slideShowWindow != null)
|
||||
{
|
||||
dynamic sswObj = slideShowWindow;
|
||||
sswObj.Activate();
|
||||
if (!SkipAnimationsWhenNavigating)
|
||||
sswObj.Activate();
|
||||
view = sswObj.View;
|
||||
if (view != null)
|
||||
{
|
||||
|
||||
@@ -124,6 +124,7 @@ namespace Ink_Canvas.Helpers
|
||||
}
|
||||
|
||||
public bool IsSupportWPS { get; set; } = false;
|
||||
public bool SkipAnimationsWhenNavigating { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// 当前演示文稿的总页数(每次按需计算,不缓存 COM 对象)。
|
||||
@@ -734,7 +735,8 @@ namespace Ink_Canvas.Helpers
|
||||
if (slideShowWindow != null)
|
||||
{
|
||||
dynamic sswObj = slideShowWindow;
|
||||
sswObj.Activate();
|
||||
if (!SkipAnimationsWhenNavigating)
|
||||
sswObj.Activate();
|
||||
view = sswObj.View;
|
||||
if (view != null)
|
||||
{
|
||||
@@ -788,7 +790,8 @@ namespace Ink_Canvas.Helpers
|
||||
if (slideShowWindow != null)
|
||||
{
|
||||
dynamic sswObj = slideShowWindow;
|
||||
sswObj.Activate();
|
||||
if (!SkipAnimationsWhenNavigating)
|
||||
sswObj.Activate();
|
||||
view = sswObj.View;
|
||||
if (view != null)
|
||||
{
|
||||
@@ -842,7 +845,8 @@ namespace Ink_Canvas.Helpers
|
||||
if (slideShowWindow != null)
|
||||
{
|
||||
dynamic sswObj = slideShowWindow;
|
||||
sswObj.Activate();
|
||||
if (!SkipAnimationsWhenNavigating)
|
||||
sswObj.Activate();
|
||||
view = sswObj.View;
|
||||
if (view != null)
|
||||
{
|
||||
|
||||
@@ -1517,6 +1517,15 @@
|
||||
IsOn="False" FontFamily="Microsoft YaHei UI" FontWeight="Bold"
|
||||
Toggled="ToggleSwitchPowerPointEnhancement_Toggled" />
|
||||
</ui:SimpleStackPanel>
|
||||
<ui:SimpleStackPanel Orientation="Horizontal" HorizontalAlignment="Left">
|
||||
<Image Source="/Resources/Icons-png/Powerpoint.png" Margin="0,0,6,0" Width="28"
|
||||
Height="28" VerticalAlignment="Center" />
|
||||
<TextBlock Foreground="#fafafa" Text="抢占焦点放映(用于跳过PPT动画)" VerticalAlignment="Center"
|
||||
FontSize="14" Margin="0,0,16,0" />
|
||||
<ui:ToggleSwitch OnContent="" OffContent="" Name="ToggleSwitchSkipAnimationsWhenGoNext"
|
||||
IsOn="False" FontFamily="Microsoft YaHei UI" FontWeight="Bold"
|
||||
Toggled="ToggleSwitchSkipAnimationsWhenGoNext_Toggled" />
|
||||
</ui:SimpleStackPanel>
|
||||
<ui:SimpleStackPanel Orientation="Horizontal" HorizontalAlignment="Left">
|
||||
<Image Source="/Resources/Icons-png/Powerpoint.png" Margin="0,0,6,0" Width="28"
|
||||
Height="28" VerticalAlignment="Center" />
|
||||
|
||||
@@ -244,6 +244,7 @@ namespace Ink_Canvas
|
||||
}
|
||||
|
||||
_pptManager.IsSupportWPS = Settings.PowerPointSettings.IsSupportWPS;
|
||||
_pptManager.SkipAnimationsWhenNavigating = Settings.PowerPointSettings.SkipAnimationsWhenGoNext;
|
||||
|
||||
// 注册事件
|
||||
_pptManager.PPTConnectionChanged += OnPPTConnectionChanged;
|
||||
@@ -1005,11 +1006,13 @@ namespace Ink_Canvas
|
||||
if (Settings.PowerPointSettings.IsAlwaysGoToFirstPageOnReenter)
|
||||
{
|
||||
_pptManager?.TryNavigateToSlide(1);
|
||||
if (Settings.PowerPointSettings.SkipAnimationsWhenGoNext) { try { this.Activate(); } catch { } }
|
||||
}
|
||||
else if (_shouldNavigateToLastPage && _lastPlaybackPage > 0)
|
||||
{
|
||||
_pptManager?.TryNavigateToSlide(_lastPlaybackPage);
|
||||
_shouldNavigateToLastPage = false; // 重置标志位
|
||||
if (Settings.PowerPointSettings.SkipAnimationsWhenGoNext) { try { this.Activate(); } catch { } }
|
||||
}
|
||||
|
||||
// 更新UI状态
|
||||
@@ -1428,6 +1431,7 @@ namespace Ink_Canvas
|
||||
if (Settings.PowerPointSettings.IsAlwaysGoToFirstPageOnReenter)
|
||||
{
|
||||
_pptManager?.TryNavigateToSlide(1);
|
||||
if (Settings.PowerPointSettings.SkipAnimationsWhenGoNext) { try { this.Activate(); } catch { } }
|
||||
}
|
||||
else if (Settings.PowerPointSettings.IsNotifyPreviousPage)
|
||||
{
|
||||
@@ -1483,6 +1487,7 @@ namespace Ink_Canvas
|
||||
{
|
||||
pres.Windows[1].View.GotoSlide(page);
|
||||
}
|
||||
if (Settings.PowerPointSettings.SkipAnimationsWhenGoNext) { try { this.Activate(); } catch { } }
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
@@ -1876,10 +1881,25 @@ namespace Ink_Canvas
|
||||
}
|
||||
}
|
||||
|
||||
// 更新PPT管理器的WPS支持设置
|
||||
// 更新PPT管理器的WPS支持设置与翻页跳过动画设置
|
||||
if (_pptManager != null)
|
||||
{
|
||||
_pptManager.IsSupportWPS = Settings.PowerPointSettings.IsSupportWPS;
|
||||
_pptManager.SkipAnimationsWhenNavigating = Settings.PowerPointSettings.SkipAnimationsWhenGoNext;
|
||||
}
|
||||
|
||||
SaveSettingsToFile();
|
||||
}
|
||||
|
||||
private void ToggleSwitchSkipAnimationsWhenGoNext_Toggled(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (!isLoaded) return;
|
||||
|
||||
Settings.PowerPointSettings.SkipAnimationsWhenGoNext = ToggleSwitchSkipAnimationsWhenGoNext.IsOn;
|
||||
|
||||
if (_pptManager != null)
|
||||
{
|
||||
_pptManager.SkipAnimationsWhenNavigating = Settings.PowerPointSettings.SkipAnimationsWhenGoNext;
|
||||
}
|
||||
|
||||
SaveSettingsToFile();
|
||||
@@ -1923,6 +1943,11 @@ namespace Ink_Canvas
|
||||
// 执行翻页
|
||||
if (_pptManager?.TryNavigatePrevious() == true)
|
||||
{
|
||||
// 若启用了“翻页时跳过PPT动画”,显示导航后把焦点拉回本窗口
|
||||
if (Settings.PowerPointSettings.SkipAnimationsWhenGoNext)
|
||||
{
|
||||
try { this.Activate(); } catch { }
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1961,6 +1986,17 @@ namespace Ink_Canvas
|
||||
// 执行翻页
|
||||
if (_pptManager?.TryNavigateNext() == true)
|
||||
{
|
||||
// 若启用了“翻页时跳过PPT动画”,翻页后主动把焦点拉回本窗口,避免 PPT 抢焦点
|
||||
if (Settings.PowerPointSettings.SkipAnimationsWhenGoNext)
|
||||
{
|
||||
try
|
||||
{
|
||||
this.Activate();
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -2097,6 +2133,11 @@ namespace Ink_Canvas
|
||||
if (_pptManager.TryShowSlideNavigation())
|
||||
{
|
||||
LogHelper.WriteLogToFile("成功显示PPT幻灯片导航", LogHelper.LogType.Trace);
|
||||
// 若启用了“翻页时跳过PPT动画”,显示导航后把焦点拉回本窗口
|
||||
if (Settings.PowerPointSettings.SkipAnimationsWhenGoNext)
|
||||
{
|
||||
try { this.Activate(); } catch { }
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -680,6 +680,8 @@ namespace Ink_Canvas
|
||||
|
||||
ToggleSwitchSupportWPS.IsOn = Settings.PowerPointSettings.IsSupportWPS;
|
||||
|
||||
ToggleSwitchSkipAnimationsWhenGoNext.IsOn = Settings.PowerPointSettings.SkipAnimationsWhenGoNext;
|
||||
|
||||
ToggleSwitchPowerPointEnhancement.IsOn = Settings.PowerPointSettings.EnablePowerPointEnhancement;
|
||||
|
||||
ToggleSwitchAutoSaveScreenShotInPowerPoint.IsOn =
|
||||
|
||||
Reference in New Issue
Block a user