From ec2d5043ffa4cb361060c5a70af83a9bdccb0ff5 Mon Sep 17 00:00:00 2001
From: CJKmkp <2564608840@qq.com>
Date: Sat, 23 Aug 2025 19:27:30 +0800
Subject: [PATCH] =?UTF-8?q?add:=E5=BA=95=E9=83=A8PPT=E7=BF=BB=E9=A1=B5?=
=?UTF-8?q?=E6=8C=89=E9=92=AE=E8=B0=83=E8=8A=82?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Ink Canvas/Helpers/PPTUIManager.cs | 6 +
Ink Canvas/MainWindow.xaml | 155 ++++++++++++++++++
Ink Canvas/MainWindow_cs/MW_PPT.cs | 2 +
Ink Canvas/MainWindow_cs/MW_Settings.cs | 152 +++++++++++++++++
Ink Canvas/MainWindow_cs/MW_SettingsToLoad.cs | 4 +
Ink Canvas/Resources/Settings.cs | 8 +
6 files changed, 327 insertions(+)
diff --git a/Ink Canvas/Helpers/PPTUIManager.cs b/Ink Canvas/Helpers/PPTUIManager.cs
index fd2f5add..dfb4d353 100644
--- a/Ink Canvas/Helpers/PPTUIManager.cs
+++ b/Ink Canvas/Helpers/PPTUIManager.cs
@@ -19,6 +19,8 @@ namespace Ink_Canvas.Helpers
public int PPTBButtonsOption { get; set; } = 121;
public int PPTLSButtonPosition { get; set; } = 0;
public int PPTRSButtonPosition { get; set; } = 0;
+ public int PPTLBButtonPosition { get; set; } = 0;
+ public int PPTRBButtonPosition { get; set; } = 0;
public bool EnablePPTButtonPageClickable { get; set; } = true;
#endregion
@@ -169,6 +171,10 @@ namespace Ink_Canvas.Helpers
_mainWindow.LeftSidePanelForPPTNavigation.Margin = new Thickness(0, 0, 0, PPTLSButtonPosition * 2);
_mainWindow.RightSidePanelForPPTNavigation.Margin = new Thickness(0, 0, 0, PPTRSButtonPosition * 2);
+ // 设置底部按钮水平位置
+ _mainWindow.LeftBottomPanelForPPTNavigation.Margin = new Thickness(6 + PPTLBButtonPosition, 0, 0, 6);
+ _mainWindow.RightBottomPanelForPPTNavigation.Margin = new Thickness(0, 0, 6 + PPTRBButtonPosition, 6);
+
// 根据显示选项设置面板可见性
var displayOption = PPTButtonsDisplayOption.ToString();
if (displayOption.Length >= 4)
diff --git a/Ink Canvas/MainWindow.xaml b/Ink Canvas/MainWindow.xaml
index ae433f8f..96397e85 100644
--- a/Ink Canvas/MainWindow.xaml
+++ b/Ink Canvas/MainWindow.xaml
@@ -1618,6 +1618,161 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
= 500)
+ {
+ if (PPTButtonLBPositionValueSlider.Value >= 500)
+ {
+ PPTBtnLBPlusBtn.IsEnabled = false;
+ PPTBtnLBPlusBtn.Opacity = 0.5;
+ PPTButtonLBPositionValueSlider.Value = 500;
+ }
+ else if (PPTButtonLBPositionValueSlider.Value <= -500)
+ {
+ PPTBtnLBMinusBtn.IsEnabled = false;
+ PPTBtnLBMinusBtn.Opacity = 0.5;
+ PPTButtonLBPositionValueSlider.Value = -500;
+ }
+ }
+ else
+ {
+ PPTBtnLBPlusBtn.IsEnabled = true;
+ PPTBtnLBPlusBtn.Opacity = 1;
+ PPTBtnLBMinusBtn.IsEnabled = true;
+ PPTBtnLBMinusBtn.Opacity = 1;
+ }
+
+ if (PPTButtonRBPositionValueSlider.Value <= -500 || PPTButtonRBPositionValueSlider.Value >= 500)
+ {
+ if (PPTButtonRBPositionValueSlider.Value >= 500)
+ {
+ PPTBtnRBPlusBtn.IsEnabled = false;
+ PPTBtnRBPlusBtn.Opacity = 0.5;
+ PPTButtonRBPositionValueSlider.Value = 500;
+ }
+ else if (PPTButtonRBPositionValueSlider.Value <= -500)
+ {
+ PPTBtnRBMinusBtn.IsEnabled = false;
+ PPTBtnRBMinusBtn.Opacity = 0.5;
+ PPTButtonRBPositionValueSlider.Value = -500;
+ }
+ }
+ else
+ {
+ PPTBtnRBPlusBtn.IsEnabled = true;
+ PPTBtnRBPlusBtn.Opacity = 1;
+ PPTBtnRBMinusBtn.IsEnabled = true;
+ PPTBtnRBMinusBtn.Opacity = 1;
+ }
}
private void PPTBtnLSPlusBtn_Clicked(object sender, RoutedEventArgs e)
@@ -834,6 +881,8 @@ namespace Ink_Canvas
_pptUIManager.PPTBButtonsOption = Settings.PowerPointSettings.PPTBButtonsOption;
_pptUIManager.PPTLSButtonPosition = Settings.PowerPointSettings.PPTLSButtonPosition;
_pptUIManager.PPTRSButtonPosition = Settings.PowerPointSettings.PPTRSButtonPosition;
+ _pptUIManager.PPTLBButtonPosition = Settings.PowerPointSettings.PPTLBButtonPosition;
+ _pptUIManager.PPTRBButtonPosition = Settings.PowerPointSettings.PPTRBButtonPosition;
_pptUIManager.UpdateNavigationPanelsVisibility();
_pptUIManager.UpdateNavigationButtonStyles();
}
@@ -2798,6 +2847,109 @@ namespace Ink_Canvas
SaveSettingsToFile();
}
+ #region 底部按钮水平位置控制
+
+ private void PPTButtonLBPositionValueSlider_ValueChanged(object sender, RoutedEventArgs e)
+ {
+ if (!isLoaded) return;
+ Settings.PowerPointSettings.PPTLBButtonPosition = (int)PPTButtonLBPositionValueSlider.Value;
+ UpdatePPTBtnSlidersStatus();
+ UpdatePPTUIManagerSettings();
+ SliderDelayAction.DebounceAction(2000, null, SaveSettingsToFile);
+ UpdatePPTBtnPreview();
+ }
+
+ private void PPTButtonRBPositionValueSlider_ValueChanged(object sender, RoutedEventArgs e)
+ {
+ if (!isLoaded) return;
+ Settings.PowerPointSettings.PPTRBButtonPosition = (int)PPTButtonRBPositionValueSlider.Value;
+ UpdatePPTBtnSlidersStatus();
+ UpdatePPTUIManagerSettings();
+ SliderDelayAction.DebounceAction(2000, null, SaveSettingsToFile);
+ UpdatePPTBtnPreview();
+ }
+
+ private void PPTBtnLBPlusBtn_Clicked(object sender, RoutedEventArgs e)
+ {
+ if (!isLoaded) return;
+ PPTButtonLBPositionValueSlider.Value++;
+ UpdatePPTBtnSlidersStatus();
+ Settings.PowerPointSettings.PPTLBButtonPosition = (int)PPTButtonLBPositionValueSlider.Value;
+ SaveSettingsToFile();
+ UpdatePPTBtnPreview();
+ }
+
+ private void PPTBtnLBMinusBtn_Clicked(object sender, RoutedEventArgs e)
+ {
+ if (!isLoaded) return;
+ PPTButtonLBPositionValueSlider.Value--;
+ UpdatePPTBtnSlidersStatus();
+ Settings.PowerPointSettings.PPTLBButtonPosition = (int)PPTButtonLBPositionValueSlider.Value;
+ SaveSettingsToFile();
+ UpdatePPTBtnPreview();
+ }
+
+ private void PPTBtnLBSyncBtn_Clicked(object sender, RoutedEventArgs e)
+ {
+ if (!isLoaded) return;
+ PPTButtonRBPositionValueSlider.Value = PPTButtonLBPositionValueSlider.Value;
+ UpdatePPTBtnSlidersStatus();
+ Settings.PowerPointSettings.PPTRBButtonPosition = (int)PPTButtonLBPositionValueSlider.Value;
+ SaveSettingsToFile();
+ UpdatePPTBtnPreview();
+ }
+
+ private void PPTBtnLBResetBtn_Clicked(object sender, RoutedEventArgs e)
+ {
+ if (!isLoaded) return;
+ PPTButtonLBPositionValueSlider.Value = 0;
+ UpdatePPTBtnSlidersStatus();
+ Settings.PowerPointSettings.PPTLBButtonPosition = 0;
+ SaveSettingsToFile();
+ UpdatePPTBtnPreview();
+ }
+
+ private void PPTBtnRBPlusBtn_Clicked(object sender, RoutedEventArgs e)
+ {
+ if (!isLoaded) return;
+ PPTButtonRBPositionValueSlider.Value++;
+ UpdatePPTBtnSlidersStatus();
+ Settings.PowerPointSettings.PPTRBButtonPosition = (int)PPTButtonRBPositionValueSlider.Value;
+ SaveSettingsToFile();
+ UpdatePPTBtnPreview();
+ }
+
+ private void PPTBtnRBMinusBtn_Clicked(object sender, RoutedEventArgs e)
+ {
+ if (!isLoaded) return;
+ PPTButtonRBPositionValueSlider.Value--;
+ UpdatePPTBtnSlidersStatus();
+ Settings.PowerPointSettings.PPTRBButtonPosition = (int)PPTButtonRBPositionValueSlider.Value;
+ SaveSettingsToFile();
+ UpdatePPTBtnPreview();
+ }
+
+ private void PPTBtnRBSyncBtn_Clicked(object sender, RoutedEventArgs e)
+ {
+ if (!isLoaded) return;
+ PPTButtonLBPositionValueSlider.Value = PPTButtonRBPositionValueSlider.Value;
+ UpdatePPTBtnSlidersStatus();
+ Settings.PowerPointSettings.PPTLBButtonPosition = (int)PPTButtonRBPositionValueSlider.Value;
+ SaveSettingsToFile();
+ UpdatePPTBtnPreview();
+ }
+
+ private void PPTBtnRBResetBtn_Clicked(object sender, RoutedEventArgs e)
+ {
+ if (!isLoaded) return;
+ PPTButtonRBPositionValueSlider.Value = 0;
+ Settings.PowerPointSettings.PPTRBButtonPosition = 0;
+ SaveSettingsToFile();
+ UpdatePPTBtnPreview();
+ }
+
+ #endregion
+
}
}
diff --git a/Ink Canvas/MainWindow_cs/MW_SettingsToLoad.cs b/Ink Canvas/MainWindow_cs/MW_SettingsToLoad.cs
index 77e50239..b350d73c 100644
--- a/Ink Canvas/MainWindow_cs/MW_SettingsToLoad.cs
+++ b/Ink Canvas/MainWindow_cs/MW_SettingsToLoad.cs
@@ -427,6 +427,10 @@ namespace Ink_Canvas
PPTButtonRightPositionValueSlider.Value = Settings.PowerPointSettings.PPTRSButtonPosition;
+ PPTButtonLBPositionValueSlider.Value = Settings.PowerPointSettings.PPTLBButtonPosition;
+
+ PPTButtonRBPositionValueSlider.Value = Settings.PowerPointSettings.PPTRBButtonPosition;
+
UpdatePPTBtnSlidersStatus();
UpdatePPTBtnPreview();
diff --git a/Ink Canvas/Resources/Settings.cs b/Ink Canvas/Resources/Settings.cs
index 3f7546bb..d5c7b5a0 100644
--- a/Ink Canvas/Resources/Settings.cs
+++ b/Ink Canvas/Resources/Settings.cs
@@ -245,6 +245,14 @@ namespace Ink_Canvas
[JsonProperty("pptRSButtonPosition")]
public int PPTRSButtonPosition { get; set; }
+ // 0居中,+就是往右,-就是往左
+ [JsonProperty("pptLBButtonPosition")]
+ public int PPTLBButtonPosition { get; set; }
+
+ // 0居中,+就是往右,-就是往左
+ [JsonProperty("pptRBButtonPosition")]
+ public int PPTRBButtonPosition { get; set; }
+
[JsonProperty("pptSButtonsOption")]
public int PPTSButtonsOption { get; set; } = 221;