add:底部PPT翻页按钮调节

This commit is contained in:
2025-08-23 19:27:30 +08:00
parent 15082c2c52
commit ec2d5043ff
6 changed files with 327 additions and 0 deletions
+6
View File
@@ -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)
+155
View File
@@ -1618,6 +1618,161 @@
</ui:SimpleStackPanel>
<TextBlock
Text="# 调大往上偏移,调小往下偏移,修改为0为不偏移,居中放置"
TextWrapping="Wrap" Foreground="#a1a1aa" />
<ui:SimpleStackPanel Orientation="Horizontal" HorizontalAlignment="Left">
<TextBlock Foreground="#fafafa" Text="左下偏移" VerticalAlignment="Center"
FontSize="14" Margin="0,0,12,0" />
<Slider x:Name="PPTButtonLBPositionValueSlider" Minimum="-500"
Maximum="500" Width="138" FontFamily="Microsoft YaHei UI"
FontSize="20" IsSnapToTickEnabled="True" Value="0"
TickFrequency="1"
TickPlacement="None" AutoToolTipPlacement="None"
ValueChanged="PPTButtonLBPositionValueSlider_ValueChanged" />
<Button Padding="5" Margin="8,0,0,0" Name="PPTBtnLBPlusBtn"
Click="PPTBtnLBPlusBtn_Clicked">
<Image Width="16" Height="16">
<Image.Source>
<DrawingImage>
<DrawingImage.Drawing>
<DrawingGroup ClipGeometry="M0,0 V16 H16 V0 H0 Z">
<GeometryDrawing Brush="#f4f4f5"
Geometry="F0 M16,16z M0,0z M9,1C9,0.447715 8.55229,0 8,0 7.44772,0 7,0.447715 7,1L7,7 1,7C0.447715,7 0,7.55272 0,8 0,8.44728 0.447715,9 1,9L7,9 7,15C7,15.5523 7.44772,16 8,16 8.55229,16 9,15.5523 9,15L9,9 15,9C15.5523,9 16,8.44728 16,8 16,7.55272 15.5523,7 15,7L9,7 9,1z" />
</DrawingGroup>
</DrawingImage.Drawing>
</DrawingImage>
</Image.Source>
</Image>
</Button>
<Button Margin="6,0,0,0" Padding="5" Name="PPTBtnLBMinusBtn"
Click="PPTBtnLBMinusBtn_Clicked">
<Image Width="16" Height="16">
<Image.Source>
<DrawingImage>
<DrawingImage.Drawing>
<DrawingGroup ClipGeometry="M0,0 V2 H16 V0 H0 Z">
<GeometryDrawing Brush="#f4f4f5"
Geometry="F0 M16,2z M0,0z M0,1C0,0.447715,0.447715,0,1,0L15,0C15.5523,0 16,0.447715 16,1 16,1.55228 15.5523,2 15,2L1,2C0.447715,2,0,1.55228,0,1z" />
</DrawingGroup>
</DrawingImage.Drawing>
</DrawingImage>
</Image.Source>
</Image>
</Button>
<Button Margin="6,0,0,0" Padding="5" Name="PPTBtnLBSyncBtn"
Click="PPTBtnLBSyncBtn_Clicked">
<Image Width="16" Height="16">
<Image.Source>
<DrawingImage>
<DrawingImage.Drawing>
<DrawingGroup ClipGeometry="M0,0 V6 H16 V0 H0 Z">
<DrawingGroup ClipGeometry="M0,0 V6 H16 V0 H0 Z">
<GeometryDrawing Brush="#f4f4f5"
Geometry="F0 M16,6z M0,0z M1,0C0.447715,0 0,0.447715 0,1 0,1.55228 0.447715,2 1,2L15,2C15.5523,2 16,1.55228 16,1 16,0.447715 15.5523,0 15,0L1,0z M1,4C0.447715,4 0,4.44772 0,5 0,5.55228 0.447715,6 1,6L15,6C15.5523,6 16,5.55228 16,5 16,4.44772 15.5523,4 15,4L1,4z" />
</DrawingGroup>
</DrawingGroup>
</DrawingImage.Drawing>
</DrawingImage>
</Image.Source>
</Image>
</Button>
<Button Margin="6,0,0,0" Padding="5" Name="PPTBtnLBResetBtn"
Click="PPTBtnLBResetBtn_Clicked">
<Image Width="16" Height="16">
<Image.Source>
<DrawingImage>
<DrawingImage.Drawing>
<DrawingGroup ClipGeometry="M0,0 V24 H24 V0 H0 Z">
<GeometryDrawing Brush="#f4f4f5"
Geometry="F0 M24,24z M0,0z M12,2.01123C10.5428,2.01123 9.14528,2.5901 8.11488,3.6205 7.08449,4.65089 6.50562,6.04841 6.50562,7.50561L6.50562,16.4944C6.50562,17.9516 7.08449,19.3491 8.11488,20.3795 9.14528,21.4099 10.5428,21.9888 12,21.9888 13.4572,21.9888 14.8547,21.4099 15.8851,20.3795 16.9135,19.3511 17.4922,17.9569 17.4944,16.5027 17.4944,16.4999 17.4944,16.4972 17.4944,16.4944L17.4944,7.50563C17.4944,7.50285 17.4944,7.50007 17.4944,7.4973 17.4922,6.0431 16.9135,4.64893 15.8851,3.6205 14.8547,2.5901 13.4572,2.01123 12,2.01123z M9.5291,5.03471C10.1844,4.37939 11.0732,4.01123 12,4.01123 12.9268,4.01123 13.8156,4.37939 14.4709,5.03471 15.1262,5.69003 15.4944,6.57884 15.4944,7.50561L15.4944,16.4944C15.4944,17.4211 15.1262,18.31 14.4709,18.9653 13.8156,19.6206 12.9268,19.9888 12,19.9888 11.0732,19.9888 10.1844,19.6206 9.5291,18.9653 8.87377,18.31 8.50562,17.4211 8.50562,16.4944L8.50562,7.50561C8.50562,6.57884 8.87377,5.69003 9.5291,5.03471z" />
</DrawingGroup>
</DrawingImage.Drawing>
</DrawingImage>
</Image.Source>
</Image>
</Button>
<TextBlock
Text="{Binding ElementName=PPTButtonLBPositionValueSlider, Path=Value}"
VerticalAlignment="Center" FontSize="13"
Margin="8,0,8,0" />
</ui:SimpleStackPanel>
<ui:SimpleStackPanel Orientation="Horizontal" HorizontalAlignment="Left">
<TextBlock Foreground="#fafafa" Text="右下偏移" VerticalAlignment="Center"
FontSize="14" Margin="0,0,12,0" />
<Slider x:Name="PPTButtonRBPositionValueSlider" Minimum="-500"
Maximum="500" Width="138" FontFamily="Microsoft YaHei UI"
FontSize="20" IsSnapToTickEnabled="True" Value="0"
TickFrequency="1"
TickPlacement="None" AutoToolTipPlacement="None"
ValueChanged="PPTButtonRBPositionValueSlider_ValueChanged" />
<Button Padding="5" Margin="8,0,0,0" Name="PPTBtnRBPlusBtn"
Click="PPTBtnRBPlusBtn_Clicked">
<Image Width="16" Height="16">
<Image.Source>
<DrawingImage>
<DrawingImage.Drawing>
<DrawingGroup ClipGeometry="M0,0 V16 H16 V0 H0 Z">
<GeometryDrawing Brush="#f4f4f5"
Geometry="F0 M16,16z M0,0z M9,1C9,0.447715 8.55229,0 8,0 7.44772,0 7,0.447715 7,1L7,7 1,7C0.447715,7 0,7.55272 0,8 0,8.44728 0.447715,9 1,9L7,9 7,15C7,15.5523 7.44772,16 8,16 8.55229,16 9,15.5523 9,15L9,9 15,9C15.5523,9 16,8.44728 16,8 16,7.55272 15.5523,7 15,7L9,7 9,1z" />
</DrawingGroup>
</DrawingImage.Drawing>
</DrawingImage>
</Image.Source>
</Image>
</Button>
<Button Margin="6,0,0,0" Padding="5" Name="PPTBtnRBMinusBtn"
Click="PPTBtnRBMinusBtn_Clicked">
<Image Width="16" Height="16">
<Image.Source>
<DrawingImage>
<DrawingImage.Drawing>
<DrawingGroup ClipGeometry="M0,0 V2 H16 V0 H0 Z">
<GeometryDrawing Brush="#f4f4f5"
Geometry="F0 M16,2z M0,0z M0,1C0,0.447715,0.447715,0,1,0L15,0C15.5523,0 16,0.447715 16,1 16,1.55228 15.5523,2 15,2L1,2C0.447715,2,0,1.55228,0,1z" />
</DrawingGroup>
</DrawingImage.Drawing>
</DrawingImage>
</Image.Source>
</Image>
</Button>
<Button Margin="6,0,0,0" Padding="5" Name="PPTBtnRBSyncBtn"
Click="PPTBtnRBSyncBtn_Clicked">
<Image Width="16" Height="16">
<Image.Source>
<DrawingImage>
<DrawingImage.Drawing>
<DrawingGroup ClipGeometry="M0,0 V6 H16 V0 H0 Z">
<DrawingGroup ClipGeometry="M0,0 V6 H16 V0 H0 Z">
<GeometryDrawing Brush="#f4f4f5"
Geometry="F0 M16,6z M0,0z M1,0C0.447715,0 0,0.447715 0,1 0,1.55228 0.447715,2 1,2L15,2C15.5523,2 16,1.55228 16,1 16,0.447715 15.5523,0 15,0L1,0z M1,4C0.447715,4 0,4.44772 0,5 0,5.55228 0.447715,6 1,6L15,6C15.5523,6 16,5.55228 16,5 16,4.44772 15.5523,4 15,4L1,4z" />
</DrawingGroup>
</DrawingGroup>
</DrawingImage.Drawing>
</DrawingImage>
</Image.Source>
</Image>
</Button>
<Button Margin="6,0,0,0" Padding="5" Name="PPTBtnRBResetBtn"
Click="PPTBtnRBResetBtn_Clicked">
<Image Width="16" Height="16">
<Image.Source>
<DrawingImage>
<DrawingImage.Drawing>
<DrawingGroup ClipGeometry="M0,0 V24 H24 V0 H0 Z">
<GeometryDrawing Brush="#f4f4f5"
Geometry="F0 M24,24z M0,0z M12,2.01123C10.5428,2.01123 9.14528,2.5901 8.11488,3.6205 7.08449,4.65089 6.50562,6.04841 6.50562,7.50561L6.50562,16.4944C6.50562,17.9516 7.08449,19.3491 8.11488,20.3795 9.14528,21.4099 10.5428,21.9888 12,21.9888 13.4572,21.9888 14.8547,21.4099 15.8851,20.3795 16.9135,19.3511 17.4922,17.9569 17.4944,16.5027 17.4944,16.4999 17.4944,16.4972 17.4944,16.4944L17.4944,7.50563C17.4944,7.50285 17.4944,7.50007 17.4944,7.4973 17.4922,6.0431 16.9135,4.64893 15.8851,3.6205 14.8547,2.5901 13.4572,2.01123 12,2.01123z M9.5291,5.03471C10.1844,4.37939 11.0732,4.01123 12,4.01123 12.9268,4.01123 13.8156,4.37939 14.4709,5.03471 15.1262,5.69003 15.4944,6.57884 15.4944,7.50561L15.4944,16.4944C15.4944,17.4211 15.1262,18.31 14.4709,18.9653 13.8156,19.6206 12.9268,19.9888 12,19.9888 11.0732,19.9888 10.1844,19.6206 9.5291,18.9653 8.87377,18.31 8.50562,17.4211 8.50562,16.4944L8.50562,7.50561C8.50562,6.57884,8.87377,5.69003,9.5291,5.03471z" />
</DrawingGroup>
</DrawingImage.Drawing>
</DrawingImage>
</Image.Source>
</Image>
</Button>
<TextBlock
Text="{Binding ElementName=PPTButtonRBPositionValueSlider, Path=Value}"
VerticalAlignment="Center" FontSize="13"
Margin="8,0,16,0" />
</ui:SimpleStackPanel>
<TextBlock
Text="# 调大往右偏移,调小往左偏移,修改为0为不偏移,居中放置"
TextWrapping="Wrap" Foreground="#a1a1aa" />
<ui:SimpleStackPanel Orientation="Horizontal" HorizontalAlignment="Left">
<TextBlock Margin="0,0,24,0" Text="两侧" FontWeight="Bold"
+2
View File
@@ -124,6 +124,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.EnablePPTButtonPageClickable = Settings.PowerPointSettings.EnablePPTButtonPageClickable;
LogHelper.WriteLogToFile("PPT管理器初始化完成", LogHelper.LogType.Event);
+152
View File
@@ -728,6 +728,53 @@ namespace Ink_Canvas
PPTBtnRSMinusBtn.IsEnabled = true;
PPTBtnRSMinusBtn.Opacity = 1;
}
// 底部按钮滑块状态管理
if (PPTButtonLBPositionValueSlider.Value <= -500 || PPTButtonLBPositionValueSlider.Value >= 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
}
}
@@ -427,6 +427,10 @@ namespace Ink_Canvas
PPTButtonRightPositionValueSlider.Value = Settings.PowerPointSettings.PPTRSButtonPosition;
PPTButtonLBPositionValueSlider.Value = Settings.PowerPointSettings.PPTLBButtonPosition;
PPTButtonRBPositionValueSlider.Value = Settings.PowerPointSettings.PPTRBButtonPosition;
UpdatePPTBtnSlidersStatus();
UpdatePPTBtnPreview();
+8
View File
@@ -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;