From 468df7dad7470774fa4b3c8565bf8cfd386311a5 Mon Sep 17 00:00:00 2001
From: CJKmkp <2564608840@qq.com>
Date: Sat, 20 Dec 2025 22:56:13 +0800
Subject: [PATCH] =?UTF-8?q?add:PPT=E6=8C=89=E9=92=AE=E9=80=8F=E6=98=8E?=
=?UTF-8?q?=E5=BA=A6=E8=AE=BE=E7=BD=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Ink Canvas/Helpers/PPTUIManager.cs | 18 +-
Ink Canvas/MainWindow.xaml | 304 ++++++++++++++
Ink Canvas/MainWindow.xaml.cs | 4 +
Ink Canvas/MainWindow_cs/MW_PPT.cs | 4 +
Ink Canvas/MainWindow_cs/MW_Settings.cs | 371 ++++++++++++++++--
Ink Canvas/MainWindow_cs/MW_SettingsToLoad.cs | 32 ++
Ink Canvas/Resources/Settings.cs | 12 +
7 files changed, 715 insertions(+), 30 deletions(-)
diff --git a/Ink Canvas/Helpers/PPTUIManager.cs b/Ink Canvas/Helpers/PPTUIManager.cs
index 854d2e85..7b6c355d 100644
--- a/Ink Canvas/Helpers/PPTUIManager.cs
+++ b/Ink Canvas/Helpers/PPTUIManager.cs
@@ -23,6 +23,10 @@ namespace Ink_Canvas.Helpers
public int PPTRBButtonPosition { get; set; } = 0;
public bool EnablePPTButtonPageClickable { get; set; } = true;
public bool EnablePPTButtonLongPressPageTurn { get; set; } = true;
+ public double PPTLSButtonOpacity { get; set; } = 0.5;
+ public double PPTRSButtonOpacity { get; set; } = 0.5;
+ public double PPTLBButtonOpacity { get; set; } = 0.5;
+ public double PPTRBButtonOpacity { get; set; } = 0.5;
#endregion
#region Private Fields
@@ -381,10 +385,9 @@ namespace Ink_Canvas.Helpers
_mainWindow.PPTLSPageButton.Visibility = pageButtonVisibility;
_mainWindow.PPTRSPageButton.Visibility = pageButtonVisibility;
- // 透明度设置
- var opacity = options[1] == '2' ? 0.5 : 1.0;
- _mainWindow.PPTBtnLSBorder.Opacity = opacity;
- _mainWindow.PPTBtnRSBorder.Opacity = opacity;
+ // 透明度设置 - 直接使用用户设置的透明度值
+ _mainWindow.PPTBtnLSBorder.Opacity = PPTLSButtonOpacity;
+ _mainWindow.PPTBtnRSBorder.Opacity = PPTRSButtonOpacity;
// 颜色主题
bool isDarkTheme = options[2] == '2';
@@ -410,10 +413,9 @@ namespace Ink_Canvas.Helpers
_mainWindow.PPTLBPageButton.Visibility = pageButtonVisibility;
_mainWindow.PPTRBPageButton.Visibility = pageButtonVisibility;
- // 透明度设置
- var opacity = options[1] == '2' ? 0.5 : 1.0;
- _mainWindow.PPTBtnLBBorder.Opacity = opacity;
- _mainWindow.PPTBtnRBBorder.Opacity = opacity;
+ // 透明度设置 - 直接使用用户设置的透明度值
+ _mainWindow.PPTBtnLBBorder.Opacity = PPTLBButtonOpacity;
+ _mainWindow.PPTBtnRBBorder.Opacity = PPTRBButtonOpacity;
// 颜色主题
bool isDarkTheme = options[2] == '2';
diff --git a/Ink Canvas/MainWindow.xaml b/Ink Canvas/MainWindow.xaml
index 5f0d9dd8..32293a00 100644
--- a/Ink Canvas/MainWindow.xaml
+++ b/Ink Canvas/MainWindow.xaml
@@ -1643,6 +1643,82 @@
VerticalAlignment="Center" FontSize="13"
Margin="8,0,8,0" />
+
+
+
+
+
+
+
+
+
@@ -1717,6 +1793,82 @@
VerticalAlignment="Center" FontSize="13"
Margin="8,0,16,0" />
+
+
+
+
+
+
+
+
+
@@ -1796,6 +1948,82 @@
VerticalAlignment="Center" FontSize="13"
Margin="8,0,8,0" />
+
+
+
+
+
+
+
+
+
@@ -1872,6 +2100,82 @@
VerticalAlignment="Center" FontSize="13"
Margin="8,0,16,0" />
+
+
+
+
+
+
+
+
+
diff --git a/Ink Canvas/MainWindow.xaml.cs b/Ink Canvas/MainWindow.xaml.cs
index edc286b2..f60406c3 100644
--- a/Ink Canvas/MainWindow.xaml.cs
+++ b/Ink Canvas/MainWindow.xaml.cs
@@ -2731,6 +2731,10 @@ namespace Ink_Canvas
PPTButtonRightPositionValueSlider,
PPTButtonLBPositionValueSlider,
PPTButtonRBPositionValueSlider,
+ PPTLSButtonOpacityValueSlider,
+ PPTRSButtonOpacityValueSlider,
+ PPTLBButtonOpacityValueSlider,
+ PPTRBButtonOpacityValueSlider,
TouchMultiplierSlider,
NibModeBoundsWidthSlider,
FingerModeBoundsWidthSlider,
diff --git a/Ink Canvas/MainWindow_cs/MW_PPT.cs b/Ink Canvas/MainWindow_cs/MW_PPT.cs
index 8dcda193..666b492e 100644
--- a/Ink Canvas/MainWindow_cs/MW_PPT.cs
+++ b/Ink Canvas/MainWindow_cs/MW_PPT.cs
@@ -152,6 +152,10 @@ namespace Ink_Canvas
_pptUIManager.PPTRBButtonPosition = Settings.PowerPointSettings.PPTRBButtonPosition;
_pptUIManager.EnablePPTButtonPageClickable = Settings.PowerPointSettings.EnablePPTButtonPageClickable;
_pptUIManager.EnablePPTButtonLongPressPageTurn = Settings.PowerPointSettings.EnablePPTButtonLongPressPageTurn;
+ _pptUIManager.PPTLSButtonOpacity = Settings.PowerPointSettings.PPTLSButtonOpacity;
+ _pptUIManager.PPTRSButtonOpacity = Settings.PowerPointSettings.PPTRSButtonOpacity;
+ _pptUIManager.PPTLBButtonOpacity = Settings.PowerPointSettings.PPTLBButtonOpacity;
+ _pptUIManager.PPTRBButtonOpacity = Settings.PowerPointSettings.PPTRBButtonOpacity;
LogHelper.WriteLogToFile("PPT管理器初始化完成", LogHelper.LogType.Event);
}
diff --git a/Ink Canvas/MainWindow_cs/MW_Settings.cs b/Ink Canvas/MainWindow_cs/MW_Settings.cs
index 6ff38b59..d8b688b4 100644
--- a/Ink Canvas/MainWindow_cs/MW_Settings.cs
+++ b/Ink Canvas/MainWindow_cs/MW_Settings.cs
@@ -646,6 +646,298 @@ namespace Ink_Canvas
SaveSettingsToFile();
}
+ private void PPTLSButtonOpacityValueSlider_ValueChanged(object sender, RoutedEventArgs e)
+ {
+ if (!isLoaded) return;
+ double roundedValue = Math.Round(PPTLSButtonOpacityValueSlider.Value, 1);
+ PPTLSButtonOpacityValueSlider.Value = roundedValue;
+ Settings.PowerPointSettings.PPTLSButtonOpacity = roundedValue;
+ SaveSettingsToFile();
+ // 更新PPT UI管理器设置
+ if (_pptUIManager != null)
+ {
+ _pptUIManager.PPTLSButtonOpacity = roundedValue;
+ _pptUIManager.UpdateNavigationButtonStyles();
+ }
+ UpdatePPTBtnPreview();
+ }
+
+ private void PPTRSButtonOpacityValueSlider_ValueChanged(object sender, RoutedEventArgs e)
+ {
+ if (!isLoaded) return;
+ double roundedValue = Math.Round(PPTRSButtonOpacityValueSlider.Value, 1);
+ PPTRSButtonOpacityValueSlider.Value = roundedValue;
+ Settings.PowerPointSettings.PPTRSButtonOpacity = roundedValue;
+ SaveSettingsToFile();
+ // 更新PPT UI管理器设置
+ if (_pptUIManager != null)
+ {
+ _pptUIManager.PPTRSButtonOpacity = roundedValue;
+ _pptUIManager.UpdateNavigationButtonStyles();
+ }
+ UpdatePPTBtnPreview();
+ }
+
+ private void PPTLBButtonOpacityValueSlider_ValueChanged(object sender, RoutedEventArgs e)
+ {
+ if (!isLoaded) return;
+ double roundedValue = Math.Round(PPTLBButtonOpacityValueSlider.Value, 1);
+ PPTLBButtonOpacityValueSlider.Value = roundedValue;
+ Settings.PowerPointSettings.PPTLBButtonOpacity = roundedValue;
+ SaveSettingsToFile();
+ // 更新PPT UI管理器设置
+ if (_pptUIManager != null)
+ {
+ _pptUIManager.PPTLBButtonOpacity = roundedValue;
+ _pptUIManager.UpdateNavigationButtonStyles();
+ }
+ UpdatePPTBtnPreview();
+ }
+
+ private void PPTRBButtonOpacityValueSlider_ValueChanged(object sender, RoutedEventArgs e)
+ {
+ if (!isLoaded) return;
+ double roundedValue = Math.Round(PPTRBButtonOpacityValueSlider.Value, 1);
+ PPTRBButtonOpacityValueSlider.Value = roundedValue;
+ Settings.PowerPointSettings.PPTRBButtonOpacity = roundedValue;
+ SaveSettingsToFile();
+ // 更新PPT UI管理器设置
+ if (_pptUIManager != null)
+ {
+ _pptUIManager.PPTRBButtonOpacity = roundedValue;
+ _pptUIManager.UpdateNavigationButtonStyles();
+ }
+ UpdatePPTBtnPreview();
+ }
+
+ // 左侧透明度按钮
+ private void PPTLSOpacityPlusBtn_Clicked(object sender, RoutedEventArgs e)
+ {
+ if (!isLoaded) return;
+ PPTLSButtonOpacityValueSlider.Value = Math.Min(1.0, PPTLSButtonOpacityValueSlider.Value + 0.1);
+ Settings.PowerPointSettings.PPTLSButtonOpacity = PPTLSButtonOpacityValueSlider.Value;
+ SaveSettingsToFile();
+ if (_pptUIManager != null)
+ {
+ _pptUIManager.PPTLSButtonOpacity = Settings.PowerPointSettings.PPTLSButtonOpacity;
+ _pptUIManager.UpdateNavigationButtonStyles();
+ }
+ UpdatePPTBtnPreview();
+ }
+
+ private void PPTLSOpacityMinusBtn_Clicked(object sender, RoutedEventArgs e)
+ {
+ if (!isLoaded) return;
+ PPTLSButtonOpacityValueSlider.Value = Math.Max(0.1, PPTLSButtonOpacityValueSlider.Value - 0.1);
+ Settings.PowerPointSettings.PPTLSButtonOpacity = PPTLSButtonOpacityValueSlider.Value;
+ SaveSettingsToFile();
+ if (_pptUIManager != null)
+ {
+ _pptUIManager.PPTLSButtonOpacity = Settings.PowerPointSettings.PPTLSButtonOpacity;
+ _pptUIManager.UpdateNavigationButtonStyles();
+ }
+ UpdatePPTBtnPreview();
+ }
+
+ private void PPTLSOpacitySyncBtn_Clicked(object sender, RoutedEventArgs e)
+ {
+ if (!isLoaded) return;
+ PPTRSButtonOpacityValueSlider.Value = PPTLSButtonOpacityValueSlider.Value;
+ Settings.PowerPointSettings.PPTRSButtonOpacity = PPTLSButtonOpacityValueSlider.Value;
+ SaveSettingsToFile();
+ if (_pptUIManager != null)
+ {
+ _pptUIManager.PPTRSButtonOpacity = Settings.PowerPointSettings.PPTRSButtonOpacity;
+ _pptUIManager.UpdateNavigationButtonStyles();
+ }
+ UpdatePPTBtnPreview();
+ }
+
+ // 右侧透明度按钮
+ private void PPTRSOpacityPlusBtn_Clicked(object sender, RoutedEventArgs e)
+ {
+ if (!isLoaded) return;
+ PPTRSButtonOpacityValueSlider.Value = Math.Min(1.0, PPTRSButtonOpacityValueSlider.Value + 0.1);
+ Settings.PowerPointSettings.PPTRSButtonOpacity = PPTRSButtonOpacityValueSlider.Value;
+ SaveSettingsToFile();
+ if (_pptUIManager != null)
+ {
+ _pptUIManager.PPTRSButtonOpacity = Settings.PowerPointSettings.PPTRSButtonOpacity;
+ _pptUIManager.UpdateNavigationButtonStyles();
+ }
+ UpdatePPTBtnPreview();
+ }
+
+ private void PPTRSOpacityMinusBtn_Clicked(object sender, RoutedEventArgs e)
+ {
+ if (!isLoaded) return;
+ PPTRSButtonOpacityValueSlider.Value = Math.Max(0.1, PPTRSButtonOpacityValueSlider.Value - 0.1);
+ Settings.PowerPointSettings.PPTRSButtonOpacity = PPTRSButtonOpacityValueSlider.Value;
+ SaveSettingsToFile();
+ if (_pptUIManager != null)
+ {
+ _pptUIManager.PPTRSButtonOpacity = Settings.PowerPointSettings.PPTRSButtonOpacity;
+ _pptUIManager.UpdateNavigationButtonStyles();
+ }
+ UpdatePPTBtnPreview();
+ }
+
+ private void PPTRSOpacitySyncBtn_Clicked(object sender, RoutedEventArgs e)
+ {
+ if (!isLoaded) return;
+ PPTLSButtonOpacityValueSlider.Value = PPTRSButtonOpacityValueSlider.Value;
+ Settings.PowerPointSettings.PPTLSButtonOpacity = PPTRSButtonOpacityValueSlider.Value;
+ SaveSettingsToFile();
+ if (_pptUIManager != null)
+ {
+ _pptUIManager.PPTLSButtonOpacity = Settings.PowerPointSettings.PPTLSButtonOpacity;
+ _pptUIManager.UpdateNavigationButtonStyles();
+ }
+ UpdatePPTBtnPreview();
+ }
+
+ // 左下透明度按钮
+ private void PPTLBOpacityPlusBtn_Clicked(object sender, RoutedEventArgs e)
+ {
+ if (!isLoaded) return;
+ PPTLBButtonOpacityValueSlider.Value = Math.Min(1.0, PPTLBButtonOpacityValueSlider.Value + 0.1);
+ Settings.PowerPointSettings.PPTLBButtonOpacity = PPTLBButtonOpacityValueSlider.Value;
+ SaveSettingsToFile();
+ if (_pptUIManager != null)
+ {
+ _pptUIManager.PPTLBButtonOpacity = Settings.PowerPointSettings.PPTLBButtonOpacity;
+ _pptUIManager.UpdateNavigationButtonStyles();
+ }
+ UpdatePPTBtnPreview();
+ }
+
+ private void PPTLBOpacityMinusBtn_Clicked(object sender, RoutedEventArgs e)
+ {
+ if (!isLoaded) return;
+ PPTLBButtonOpacityValueSlider.Value = Math.Max(0.1, PPTLBButtonOpacityValueSlider.Value - 0.1);
+ Settings.PowerPointSettings.PPTLBButtonOpacity = PPTLBButtonOpacityValueSlider.Value;
+ SaveSettingsToFile();
+ if (_pptUIManager != null)
+ {
+ _pptUIManager.PPTLBButtonOpacity = Settings.PowerPointSettings.PPTLBButtonOpacity;
+ _pptUIManager.UpdateNavigationButtonStyles();
+ }
+ UpdatePPTBtnPreview();
+ }
+
+ private void PPTLBOpacitySyncBtn_Clicked(object sender, RoutedEventArgs e)
+ {
+ if (!isLoaded) return;
+ PPTRBButtonOpacityValueSlider.Value = PPTLBButtonOpacityValueSlider.Value;
+ Settings.PowerPointSettings.PPTRBButtonOpacity = PPTLBButtonOpacityValueSlider.Value;
+ SaveSettingsToFile();
+ if (_pptUIManager != null)
+ {
+ _pptUIManager.PPTRBButtonOpacity = Settings.PowerPointSettings.PPTRBButtonOpacity;
+ _pptUIManager.UpdateNavigationButtonStyles();
+ }
+ UpdatePPTBtnPreview();
+ }
+
+ // 右下透明度按钮
+ private void PPTRBOpacityPlusBtn_Clicked(object sender, RoutedEventArgs e)
+ {
+ if (!isLoaded) return;
+ PPTRBButtonOpacityValueSlider.Value = Math.Min(1.0, PPTRBButtonOpacityValueSlider.Value + 0.1);
+ Settings.PowerPointSettings.PPTRBButtonOpacity = PPTRBButtonOpacityValueSlider.Value;
+ SaveSettingsToFile();
+ if (_pptUIManager != null)
+ {
+ _pptUIManager.PPTRBButtonOpacity = Settings.PowerPointSettings.PPTRBButtonOpacity;
+ _pptUIManager.UpdateNavigationButtonStyles();
+ }
+ UpdatePPTBtnPreview();
+ }
+
+ private void PPTRBOpacityMinusBtn_Clicked(object sender, RoutedEventArgs e)
+ {
+ if (!isLoaded) return;
+ PPTRBButtonOpacityValueSlider.Value = Math.Max(0.1, PPTRBButtonOpacityValueSlider.Value - 0.1);
+ Settings.PowerPointSettings.PPTRBButtonOpacity = PPTRBButtonOpacityValueSlider.Value;
+ SaveSettingsToFile();
+ if (_pptUIManager != null)
+ {
+ _pptUIManager.PPTRBButtonOpacity = Settings.PowerPointSettings.PPTRBButtonOpacity;
+ _pptUIManager.UpdateNavigationButtonStyles();
+ }
+ UpdatePPTBtnPreview();
+ }
+
+ private void PPTRBOpacitySyncBtn_Clicked(object sender, RoutedEventArgs e)
+ {
+ if (!isLoaded) return;
+ PPTLBButtonOpacityValueSlider.Value = PPTRBButtonOpacityValueSlider.Value;
+ Settings.PowerPointSettings.PPTLBButtonOpacity = PPTRBButtonOpacityValueSlider.Value;
+ SaveSettingsToFile();
+ if (_pptUIManager != null)
+ {
+ _pptUIManager.PPTLBButtonOpacity = Settings.PowerPointSettings.PPTLBButtonOpacity;
+ _pptUIManager.UpdateNavigationButtonStyles();
+ }
+ UpdatePPTBtnPreview();
+ }
+
+ private void PPTLSOpacityResetBtn_Clicked(object sender, RoutedEventArgs e)
+ {
+ if (!isLoaded) return;
+ PPTLSButtonOpacityValueSlider.Value = 0.5;
+ Settings.PowerPointSettings.PPTLSButtonOpacity = 0.5;
+ SaveSettingsToFile();
+ if (_pptUIManager != null)
+ {
+ _pptUIManager.PPTLSButtonOpacity = 0.5;
+ _pptUIManager.UpdateNavigationButtonStyles();
+ }
+ UpdatePPTBtnPreview();
+ }
+
+ private void PPTRSOpacityResetBtn_Clicked(object sender, RoutedEventArgs e)
+ {
+ if (!isLoaded) return;
+ PPTRSButtonOpacityValueSlider.Value = 0.5;
+ Settings.PowerPointSettings.PPTRSButtonOpacity = 0.5;
+ SaveSettingsToFile();
+ if (_pptUIManager != null)
+ {
+ _pptUIManager.PPTRSButtonOpacity = 0.5;
+ _pptUIManager.UpdateNavigationButtonStyles();
+ }
+ UpdatePPTBtnPreview();
+ }
+
+ private void PPTLBOpacityResetBtn_Clicked(object sender, RoutedEventArgs e)
+ {
+ if (!isLoaded) return;
+ PPTLBButtonOpacityValueSlider.Value = 0.5;
+ Settings.PowerPointSettings.PPTLBButtonOpacity = 0.5;
+ SaveSettingsToFile();
+ if (_pptUIManager != null)
+ {
+ _pptUIManager.PPTLBButtonOpacity = 0.5;
+ _pptUIManager.UpdateNavigationButtonStyles();
+ }
+ UpdatePPTBtnPreview();
+ }
+
+ private void PPTRBOpacityResetBtn_Clicked(object sender, RoutedEventArgs e)
+ {
+ if (!isLoaded) return;
+ PPTRBButtonOpacityValueSlider.Value = 0.5;
+ Settings.PowerPointSettings.PPTRBButtonOpacity = 0.5;
+ SaveSettingsToFile();
+ if (_pptUIManager != null)
+ {
+ _pptUIManager.PPTRBButtonOpacity = 0.5;
+ _pptUIManager.UpdateNavigationButtonStyles();
+ }
+ UpdatePPTBtnPreview();
+ }
+
private void CheckboxEnableLBPPTButton_IsCheckChanged(object sender, RoutedEventArgs e)
{
if (!isLoaded) return;
@@ -736,13 +1028,37 @@ namespace Ink_Canvas
if (!isLoaded) return;
var str = Settings.PowerPointSettings.PPTSButtonsOption.ToString();
char[] c = str.ToCharArray();
- c[1] = (bool)((CheckBox)sender).IsChecked ? '2' : '1';
+ bool isHalfOpacity = (bool)((CheckBox)sender).IsChecked;
+ c[1] = isHalfOpacity ? '2' : '1';
Settings.PowerPointSettings.PPTSButtonsOption = int.Parse(new string(c));
+
+ // 如果开启半透明选项,设置默认透明度为0.5;否则为1.0
+ if (isHalfOpacity)
+ {
+ if (Settings.PowerPointSettings.PPTLSButtonOpacity == 1.0)
+ Settings.PowerPointSettings.PPTLSButtonOpacity = 0.5;
+ if (Settings.PowerPointSettings.PPTRSButtonOpacity == 1.0)
+ Settings.PowerPointSettings.PPTRSButtonOpacity = 0.5;
+ PPTLSButtonOpacityValueSlider.Value = Settings.PowerPointSettings.PPTLSButtonOpacity;
+ PPTRSButtonOpacityValueSlider.Value = Settings.PowerPointSettings.PPTRSButtonOpacity;
+ }
+ else
+ {
+ if (Settings.PowerPointSettings.PPTLSButtonOpacity == 0.5)
+ Settings.PowerPointSettings.PPTLSButtonOpacity = 1.0;
+ if (Settings.PowerPointSettings.PPTRSButtonOpacity == 0.5)
+ Settings.PowerPointSettings.PPTRSButtonOpacity = 1.0;
+ PPTLSButtonOpacityValueSlider.Value = Settings.PowerPointSettings.PPTLSButtonOpacity;
+ PPTRSButtonOpacityValueSlider.Value = Settings.PowerPointSettings.PPTRSButtonOpacity;
+ }
+
SaveSettingsToFile();
// 更新PPT UI管理器设置
if (_pptUIManager != null && BtnPPTSlideShowEnd.Visibility == Visibility.Visible)
{
_pptUIManager.PPTSButtonsOption = Settings.PowerPointSettings.PPTSButtonsOption;
+ _pptUIManager.PPTLSButtonOpacity = Settings.PowerPointSettings.PPTLSButtonOpacity;
+ _pptUIManager.PPTRSButtonOpacity = Settings.PowerPointSettings.PPTRSButtonOpacity;
_pptUIManager.UpdateNavigationButtonStyles();
}
UpdatePPTBtnPreview();
@@ -787,8 +1103,30 @@ namespace Ink_Canvas
if (!isLoaded) return;
var str = Settings.PowerPointSettings.PPTBButtonsOption.ToString();
char[] c = str.ToCharArray();
- c[1] = (bool)((CheckBox)sender).IsChecked ? '2' : '1';
+ bool isHalfOpacity = (bool)((CheckBox)sender).IsChecked;
+ c[1] = isHalfOpacity ? '2' : '1';
Settings.PowerPointSettings.PPTBButtonsOption = int.Parse(new string(c));
+
+ // 如果开启半透明选项,设置默认透明度为0.5;否则为1.0
+ if (isHalfOpacity)
+ {
+ if (Settings.PowerPointSettings.PPTLBButtonOpacity == 1.0)
+ Settings.PowerPointSettings.PPTLBButtonOpacity = 0.5;
+ if (Settings.PowerPointSettings.PPTRBButtonOpacity == 1.0)
+ Settings.PowerPointSettings.PPTRBButtonOpacity = 0.5;
+ PPTLBButtonOpacityValueSlider.Value = Settings.PowerPointSettings.PPTLBButtonOpacity;
+ PPTRBButtonOpacityValueSlider.Value = Settings.PowerPointSettings.PPTRBButtonOpacity;
+ }
+ else
+ {
+ if (Settings.PowerPointSettings.PPTLBButtonOpacity == 0.5)
+ Settings.PowerPointSettings.PPTLBButtonOpacity = 1.0;
+ if (Settings.PowerPointSettings.PPTRBButtonOpacity == 0.5)
+ Settings.PowerPointSettings.PPTRBButtonOpacity = 1.0;
+ PPTLBButtonOpacityValueSlider.Value = Settings.PowerPointSettings.PPTLBButtonOpacity;
+ PPTRBButtonOpacityValueSlider.Value = Settings.PowerPointSettings.PPTRBButtonOpacity;
+ }
+
SaveSettingsToFile();
UpdatePPTUIManagerSettings();
UpdatePPTBtnPreview();
@@ -1020,6 +1358,10 @@ namespace Ink_Canvas
_pptUIManager.PPTRBButtonPosition = Settings.PowerPointSettings.PPTRBButtonPosition;
_pptUIManager.EnablePPTButtonPageClickable = Settings.PowerPointSettings.EnablePPTButtonPageClickable;
_pptUIManager.EnablePPTButtonLongPressPageTurn = Settings.PowerPointSettings.EnablePPTButtonLongPressPageTurn;
+ _pptUIManager.PPTLSButtonOpacity = Settings.PowerPointSettings.PPTLSButtonOpacity;
+ _pptUIManager.PPTRSButtonOpacity = Settings.PowerPointSettings.PPTRSButtonOpacity;
+ _pptUIManager.PPTLBButtonOpacity = Settings.PowerPointSettings.PPTLBButtonOpacity;
+ _pptUIManager.PPTRBButtonOpacity = Settings.PowerPointSettings.PPTRBButtonOpacity;
_pptUIManager.UpdateNavigationPanelsVisibility();
_pptUIManager.UpdateNavigationButtonStyles();
}
@@ -1030,16 +1372,9 @@ namespace Ink_Canvas
//new BitmapImage(new Uri("pack://application:,,,/Resources/new-icons/unfold-chevron.png"));
var bopt = Settings.PowerPointSettings.PPTBButtonsOption.ToString();
char[] boptc = bopt.ToCharArray();
- if (boptc[1] == '2')
- {
- PPTBtnPreviewLB.Opacity = 0.5;
- PPTBtnPreviewRB.Opacity = 0.5;
- }
- else
- {
- PPTBtnPreviewLB.Opacity = 1;
- PPTBtnPreviewRB.Opacity = 1;
- }
+ // 使用实际的透明度设置值
+ PPTBtnPreviewLB.Opacity = Settings.PowerPointSettings.PPTLBButtonOpacity;
+ PPTBtnPreviewRB.Opacity = Settings.PowerPointSettings.PPTRBButtonOpacity;
if (boptc[2] == '2')
{
@@ -1060,16 +1395,8 @@ namespace Ink_Canvas
var sopt = Settings.PowerPointSettings.PPTSButtonsOption.ToString();
char[] soptc = sopt.ToCharArray();
- if (soptc[1] == '2')
- {
- PPTBtnPreviewLS.Opacity = 0.5;
- PPTBtnPreviewRS.Opacity = 0.5;
- }
- else
- {
- PPTBtnPreviewLS.Opacity = 1;
- PPTBtnPreviewRS.Opacity = 1;
- }
+ PPTBtnPreviewLS.Opacity = Settings.PowerPointSettings.PPTLSButtonOpacity;
+ PPTBtnPreviewRS.Opacity = Settings.PowerPointSettings.PPTRSButtonOpacity;
if (soptc[2] == '2')
{
diff --git a/Ink Canvas/MainWindow_cs/MW_SettingsToLoad.cs b/Ink Canvas/MainWindow_cs/MW_SettingsToLoad.cs
index 0e9969c2..669226ae 100644
--- a/Ink Canvas/MainWindow_cs/MW_SettingsToLoad.cs
+++ b/Ink Canvas/MainWindow_cs/MW_SettingsToLoad.cs
@@ -553,6 +553,38 @@ namespace Ink_Canvas
PPTButtonRBPositionValueSlider.Value = Settings.PowerPointSettings.PPTRBButtonPosition;
+ // 初始化PPT翻页按钮透明度滑块值,根据半透明选项设置默认值
+ // 重用之前定义的sopsc和bopsc变量
+ bool isSideHalfOpacity = sopsc.Length >= 2 && sopsc[1] == '2';
+ // 如果透明度为0或未设置,根据半透明选项设置默认值
+ if (Settings.PowerPointSettings.PPTLSButtonOpacity == 0.0 ||
+ (Settings.PowerPointSettings.PPTLSButtonOpacity == 1.0 && isSideHalfOpacity))
+ {
+ Settings.PowerPointSettings.PPTLSButtonOpacity = isSideHalfOpacity ? 0.5 : 1.0;
+ }
+ if (Settings.PowerPointSettings.PPTRSButtonOpacity == 0.0 ||
+ (Settings.PowerPointSettings.PPTRSButtonOpacity == 1.0 && isSideHalfOpacity))
+ {
+ Settings.PowerPointSettings.PPTRSButtonOpacity = isSideHalfOpacity ? 0.5 : 1.0;
+ }
+ PPTLSButtonOpacityValueSlider.Value = Settings.PowerPointSettings.PPTLSButtonOpacity;
+ PPTRSButtonOpacityValueSlider.Value = Settings.PowerPointSettings.PPTRSButtonOpacity;
+
+ bool isBottomHalfOpacity = bopsc.Length >= 2 && bopsc[1] == '2';
+ // 如果透明度为0或未设置,根据半透明选项设置默认值
+ if (Settings.PowerPointSettings.PPTLBButtonOpacity == 0.0 ||
+ (Settings.PowerPointSettings.PPTLBButtonOpacity == 1.0 && isBottomHalfOpacity))
+ {
+ Settings.PowerPointSettings.PPTLBButtonOpacity = isBottomHalfOpacity ? 0.5 : 1.0;
+ }
+ if (Settings.PowerPointSettings.PPTRBButtonOpacity == 0.0 ||
+ (Settings.PowerPointSettings.PPTRBButtonOpacity == 1.0 && isBottomHalfOpacity))
+ {
+ Settings.PowerPointSettings.PPTRBButtonOpacity = isBottomHalfOpacity ? 0.5 : 1.0;
+ }
+ PPTLBButtonOpacityValueSlider.Value = Settings.PowerPointSettings.PPTLBButtonOpacity;
+ PPTRBButtonOpacityValueSlider.Value = Settings.PowerPointSettings.PPTRBButtonOpacity;
+
UpdatePPTBtnSlidersStatus();
UpdatePPTBtnPreview();
diff --git a/Ink Canvas/Resources/Settings.cs b/Ink Canvas/Resources/Settings.cs
index 44f0618f..d9658b05 100644
--- a/Ink Canvas/Resources/Settings.cs
+++ b/Ink Canvas/Resources/Settings.cs
@@ -285,6 +285,18 @@ namespace Ink_Canvas
[JsonProperty("enablePPTButtonLongPressPageTurn")]
public bool EnablePPTButtonLongPressPageTurn { get; set; } = true;
+ [JsonProperty("pptLSButtonOpacity")]
+ public double PPTLSButtonOpacity { get; set; } = 0.5;
+
+ [JsonProperty("pptRSButtonOpacity")]
+ public double PPTRSButtonOpacity { get; set; } = 0.5;
+
+ [JsonProperty("pptLBButtonOpacity")]
+ public double PPTLBButtonOpacity { get; set; } = 0.5;
+
+ [JsonProperty("pptRBButtonOpacity")]
+ public double PPTRBButtonOpacity { get; set; } = 0.5;
+
// -- new --
[JsonProperty("powerPointSupport")]