From e3add94546f03b1f1adfa23ecb71a20ca95d7383 Mon Sep 17 00:00:00 2001 From: CJKmkp <2564608840@qq.com> Date: Fri, 3 Oct 2025 08:52:47 +0800 Subject: [PATCH] fix:issue #219 --- Ink Canvas/MainWindow.xaml | 77 +++++++++++++------------ Ink Canvas/MainWindow_cs/MW_Settings.cs | 37 +++++++----- 2 files changed, 64 insertions(+), 50 deletions(-) diff --git a/Ink Canvas/MainWindow.xaml b/Ink Canvas/MainWindow.xaml index 87ef3cf1..9e746ea3 100644 --- a/Ink Canvas/MainWindow.xaml +++ b/Ink Canvas/MainWindow.xaml @@ -1465,43 +1465,45 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Ink Canvas/MainWindow_cs/MW_Settings.cs b/Ink Canvas/MainWindow_cs/MW_Settings.cs index 178e4062..2dac6af0 100644 --- a/Ink Canvas/MainWindow_cs/MW_Settings.cs +++ b/Ink Canvas/MainWindow_cs/MW_Settings.cs @@ -1026,23 +1026,34 @@ namespace Ink_Canvas PPTBtnPreviewRS.Visibility = Visibility.Collapsed; } - // 计算预览区域的缩放比例 - double previewScaleY = 182.0 / SystemParameters.PrimaryScreenHeight; - double previewScaleX = 324.0 / SystemParameters.PrimaryScreenWidth; + // 获取当前屏幕的实际尺寸(考虑DPI缩放) + var actualScreenWidth = SystemParameters.PrimaryScreenWidth; + var actualScreenHeight = SystemParameters.PrimaryScreenHeight; - double sideButtonScaleFactor = 1.9; + // 预览区域固定尺寸 + const double previewWidth = 324.0; + const double previewHeight = 182.0; + // 计算缩放比例(预览区域与实际屏幕的比例) + double scaleX = previewWidth / actualScreenWidth; + double scaleY = previewHeight / actualScreenHeight; + + // 获取按钮位置设置 double rsPosition = Settings.PowerPointSettings.PPTRSButtonPosition; double lsPosition = Settings.PowerPointSettings.PPTLSButtonPosition; - - PPTBtnPreviewRSTransform.Y = -(rsPosition * 2 * previewScaleY / sideButtonScaleFactor); - PPTBtnPreviewLSTransform.Y = -(lsPosition * 2 * previewScaleY / sideButtonScaleFactor); - - - double bottomButtonScaleFactor = 1.2; - double leftMarginOffset = 6 * previewScaleX; - PPTBtnPreviewLBTransform.X = leftMarginOffset + (Settings.PowerPointSettings.PPTLBButtonPosition * previewScaleX / bottomButtonScaleFactor); - PPTBtnPreviewRBTransform.X = -(leftMarginOffset + (Settings.PowerPointSettings.PPTRBButtonPosition * previewScaleX / bottomButtonScaleFactor)); + double lbPosition = Settings.PowerPointSettings.PPTLBButtonPosition; + double rbPosition = Settings.PowerPointSettings.PPTRBButtonPosition; + + // 计算侧边按钮位置(Y轴偏移) + PPTBtnPreviewRSTransform.Y = -(rsPosition * scaleY); + PPTBtnPreviewLSTransform.Y = -(lsPosition * scaleY); + + // 计算底部按钮位置(X轴偏移) + const double bottomMarginOffset = 6.0; + double scaledMarginOffset = bottomMarginOffset * scaleX; + + PPTBtnPreviewLBTransform.X = scaledMarginOffset + (lbPosition * scaleX); + PPTBtnPreviewRBTransform.X = -(scaledMarginOffset + (rbPosition * scaleX)); } private void ToggleSwitchShowCursor_Toggled(object sender, RoutedEventArgs e)