From ae49bb3df953fbdb6b7080edf82555bb63b387b6 Mon Sep 17 00:00:00 2001 From: Raspberry-Monster Date: Mon, 17 Apr 2023 17:23:17 +0800 Subject: [PATCH] =?UTF-8?q?[SpecialScreen]=20=E6=81=A2=E5=A4=8DSpecial=20S?= =?UTF-8?q?creen=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ink Canvas/MainWindow.xaml | 23 +++++++++++++---------- Ink Canvas/MainWindow.xaml.cs | 25 +++++++++++++++++++++---- Ink Canvas/Settings.cs | 4 +++- 3 files changed, 37 insertions(+), 15 deletions(-) diff --git a/Ink Canvas/MainWindow.xaml b/Ink Canvas/MainWindow.xaml index 2f619dd..3780137 100644 --- a/Ink Canvas/MainWindow.xaml +++ b/Ink Canvas/MainWindow.xaml @@ -476,20 +476,23 @@ + + HorizontalAlignment="Left" + Minimum="0" Maximum="1" + Width="300" FontFamily="Microsoft YaHei UI" + ui:ControlHelper.Header="触摸大小倍数" + IsSnapToTickEnabled="True" + TickFrequency="0.05" TickPlacement="Both" + ValueChanged="TouchMultiplierSlider_ValueChanged" + Visibility="Collapsed"/> + FontSize="14" Width="30" HorizontalAlignment="Center" + Visibility="{Binding Path=Visibility, ElementName=TouchMultiplierSlider, Mode=OneWay}"/> - + @@ -548,7 +551,7 @@ 开发者: XY Wang (WXRIW) - 贡献者: Kengwang, jiajiaxd, CN-Ironegg + 贡献者: Kengwang, jiajiaxd, CN-Ironegg, Raspberry Kan 开源地址: diff --git a/Ink Canvas/MainWindow.xaml.cs b/Ink Canvas/MainWindow.xaml.cs index b5acd46..011e7b9 100644 --- a/Ink Canvas/MainWindow.xaml.cs +++ b/Ink Canvas/MainWindow.xaml.cs @@ -830,6 +830,16 @@ namespace Ink_Canvas { ToggleSwitchEraserBindTouchMultiplier.IsOn = false; } + + if (Settings.Advanced.IsSpecialScreen) + { + ToggleSwitchIsSpecialScreen.IsOn = true; + } + else + { + ToggleSwitchIsSpecialScreen.IsOn = false; + } + TouchMultiplierSlider.Visibility = ToggleSwitchIsSpecialScreen.IsOn ? Visibility.Visible : Visibility.Collapsed; } else { @@ -1671,7 +1681,7 @@ namespace Ink_Canvas inkCanvas.Opacity = 1; double boundsWidth = GetTouchBoundWidth(e); var eraserMultiplier = 1d; - if (!Settings.Advanced.EraserBindTouchMultiplier) eraserMultiplier = 1 / Settings.Advanced.TouchMultiplier; + if (!Settings.Advanced.EraserBindTouchMultiplier && Settings.Advanced.IsSpecialScreen) eraserMultiplier = 1 / Settings.Advanced.TouchMultiplier; if (boundsWidth > BoundsWidth) { isLastTouchEraser = true; @@ -1727,7 +1737,7 @@ namespace Ink_Canvas { var args = e.GetTouchPoint(null).Bounds; double value = args.Width; - value *= Settings.Advanced.TouchMultiplier; + if (Settings.Advanced.IsSpecialScreen) value *= Settings.Advanced.TouchMultiplier; return value; } @@ -2982,7 +2992,15 @@ namespace Ink_Canvas #endregion #region Advanced - + + private void ToggleSwitchIsSpecialScreen_OnToggled(object sender, RoutedEventArgs e) + { + if (!isLoaded) return; + Settings.Advanced.IsSpecialScreen = ToggleSwitchIsSpecialScreen.IsOn; + TouchMultiplierSlider.Visibility = ToggleSwitchIsSpecialScreen.IsOn ? Visibility.Visible : Visibility.Collapsed; + SaveSettingsToFile(); + } + private void TouchMultiplierSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs e) { if (!isLoaded) return; @@ -6427,7 +6445,6 @@ namespace Ink_Canvas #endregion - } #region Test for pen diff --git a/Ink Canvas/Settings.cs b/Ink Canvas/Settings.cs index ebe8304..d72a323 100644 --- a/Ink Canvas/Settings.cs +++ b/Ink Canvas/Settings.cs @@ -112,8 +112,10 @@ namespace Ink_Canvas public class Advanced { + [JsonProperty("isSpecialScreen")] + public bool IsSpecialScreen { get; set; } = false; [JsonProperty("touchMultiplier")] - public double TouchMultiplier { get; set; } = 1d; + public double TouchMultiplier { get; set; } = 0.25; [JsonProperty("eraserBindTouchMultiplier")] public bool EraserBindTouchMultiplier { get; set; } = false; [JsonProperty("isLogEnabled")]