diff --git a/Ink Canvas/MainWindow.xaml b/Ink Canvas/MainWindow.xaml index acfefaba..545a2310 100644 --- a/Ink Canvas/MainWindow.xaml +++ b/Ink Canvas/MainWindow.xaml @@ -1227,6 +1227,22 @@ Toggled="ToggleSwitchShowHideButton_Toggled" /> + + + + + + + + + + @@ -6276,13 +6292,29 @@ - - - + + + + + + + @@ -6307,13 +6339,29 @@ - - - + + + + + + + @@ -6338,13 +6386,29 @@ - - - + + + + + + + @@ -6369,13 +6433,29 @@ - - - + + + + + + + @@ -6400,13 +6480,29 @@ - - - + + + + + + + @@ -6431,13 +6527,29 @@ - - - + + + + + + + diff --git a/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs b/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs index d6c57556..35b34f28 100644 --- a/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs +++ b/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs @@ -1892,37 +1892,61 @@ namespace Ink_Canvas private void UpdateQuickColorPaletteIndicator(Color selectedColor) { - // 隐藏所有指示器 - QuickColorWhiteIndicator.Visibility = Visibility.Collapsed; - QuickColorOrangeIndicator.Visibility = Visibility.Collapsed; - QuickColorYellowIndicator.Visibility = Visibility.Collapsed; - QuickColorBlackIndicator.Visibility = Visibility.Collapsed; - QuickColorBlueIndicator.Visibility = Visibility.Collapsed; - QuickColorRedIndicator.Visibility = Visibility.Collapsed; + // 隐藏所有高光效果和外圈阴影 + QuickColorWhiteGlow.Visibility = Visibility.Collapsed; + QuickColorWhiteGlowShadow.Visibility = Visibility.Collapsed; + QuickColorOrangeGlow.Visibility = Visibility.Collapsed; + QuickColorOrangeGlowShadow.Visibility = Visibility.Collapsed; + QuickColorYellowGlow.Visibility = Visibility.Collapsed; + QuickColorYellowGlowShadow.Visibility = Visibility.Collapsed; + QuickColorBlackGlow.Visibility = Visibility.Collapsed; + QuickColorBlackGlowShadow.Visibility = Visibility.Collapsed; + QuickColorBlueGlow.Visibility = Visibility.Collapsed; + QuickColorBlueGlowShadow.Visibility = Visibility.Collapsed; + QuickColorRedGlow.Visibility = Visibility.Collapsed; + QuickColorRedGlowShadow.Visibility = Visibility.Collapsed; - // 显示当前选中颜色的指示器 + // 显示当前选中颜色的高光效果和外圈阴影 // 使用更精确的颜色匹配,减少容差范围避免误判 if (IsColorSimilar(selectedColor, Colors.White, 10) || IsColorSimilar(selectedColor, Color.FromRgb(250, 250, 250), 10)) - QuickColorWhiteIndicator.Visibility = Visibility.Visible; + { + QuickColorWhiteGlow.Visibility = Visibility.Visible; + QuickColorWhiteGlowShadow.Visibility = Visibility.Visible; + } else if (IsColorSimilar(selectedColor, Colors.Black, 10)) - QuickColorBlackIndicator.Visibility = Visibility.Visible; + { + QuickColorBlackGlow.Visibility = Visibility.Visible; + QuickColorBlackGlowShadow.Visibility = Visibility.Visible; + } else if (IsColorSimilar(selectedColor, Colors.Yellow, 15) || IsColorSimilar(selectedColor, Color.FromRgb(234, 179, 8), 15) || IsColorSimilar(selectedColor, Color.FromRgb(250, 204, 21), 15) || IsColorSimilar(selectedColor, Color.FromRgb(253, 224, 71), 15)) - QuickColorYellowIndicator.Visibility = Visibility.Visible; + { + QuickColorYellowGlow.Visibility = Visibility.Visible; + QuickColorYellowGlowShadow.Visibility = Visibility.Visible; + } else if (IsColorSimilar(selectedColor, Color.FromRgb(255, 165, 0), 15) || IsColorSimilar(selectedColor, Color.FromRgb(249, 115, 22), 15) || IsColorSimilar(selectedColor, Color.FromRgb(234, 88, 12), 15)) - QuickColorOrangeIndicator.Visibility = Visibility.Visible; + { + QuickColorOrangeGlow.Visibility = Visibility.Visible; + QuickColorOrangeGlowShadow.Visibility = Visibility.Visible; + } else if (IsColorSimilar(selectedColor, Color.FromRgb(0, 102, 255), 15) || IsColorSimilar(selectedColor, Color.FromRgb(37, 99, 235), 15) || IsColorSimilar(selectedColor, Color.FromRgb(59, 130, 246), 15)) - QuickColorBlueIndicator.Visibility = Visibility.Visible; + { + QuickColorBlueGlow.Visibility = Visibility.Visible; + QuickColorBlueGlowShadow.Visibility = Visibility.Visible; + } else if (IsColorSimilar(selectedColor, Colors.Red, 15) || IsColorSimilar(selectedColor, Color.FromRgb(220, 38, 38), 15) || IsColorSimilar(selectedColor, Color.FromRgb(239, 68, 68), 15)) - QuickColorRedIndicator.Visibility = Visibility.Visible; + { + QuickColorRedGlow.Visibility = Visibility.Visible; + QuickColorRedGlowShadow.Visibility = Visibility.Visible; + } } /// diff --git a/Ink Canvas/MainWindow_cs/MW_Settings.cs b/Ink Canvas/MainWindow_cs/MW_Settings.cs index cb72383b..b803d481 100644 --- a/Ink Canvas/MainWindow_cs/MW_Settings.cs +++ b/Ink Canvas/MainWindow_cs/MW_Settings.cs @@ -1861,6 +1861,8 @@ namespace Ink_Canvas Settings.Appearance.IsShowClearButton = true; Settings.Appearance.IsShowWhiteboardButton = true; Settings.Appearance.IsShowHideButton = true; + Settings.Appearance.IsShowLassoSelectButton = true; + Settings.Appearance.IsShowClearAndMouseButton = true; Settings.Appearance.IsShowQuickColorPalette = false; Settings.Appearance.EraserDisplayOption = 0; @@ -2381,6 +2383,22 @@ namespace Ink_Canvas SaveSettingsToFile(); } + private void ToggleSwitchShowLassoSelectButton_Toggled(object sender, RoutedEventArgs e) + { + if (!isLoaded) return; + Settings.Appearance.IsShowLassoSelectButton = ToggleSwitchShowLassoSelectButton.IsOn; + UpdateFloatingBarButtonsVisibility(); + SaveSettingsToFile(); + } + + private void ToggleSwitchShowClearAndMouseButton_Toggled(object sender, RoutedEventArgs e) + { + if (!isLoaded) return; + Settings.Appearance.IsShowClearAndMouseButton = ToggleSwitchShowClearAndMouseButton.IsOn; + UpdateFloatingBarButtonsVisibility(); + SaveSettingsToFile(); + } + private void ToggleSwitchShowHideButton_Toggled(object sender, RoutedEventArgs e) { if (!isLoaded) return; @@ -2438,6 +2456,14 @@ namespace Ink_Canvas if (QuickColorPalettePanel != null) QuickColorPalettePanel.Visibility = Settings.Appearance.IsShowQuickColorPalette ? Visibility.Visible : Visibility.Collapsed; + // 套索选择按钮 + if (SymbolIconSelect != null) + SymbolIconSelect.Visibility = Settings.Appearance.IsShowLassoSelectButton ? Visibility.Visible : Visibility.Collapsed; + + // 清并鼠按钮 + if (CursorWithDelFloatingBarBtn != null) + CursorWithDelFloatingBarBtn.Visibility = Settings.Appearance.IsShowClearAndMouseButton ? Visibility.Visible : Visibility.Collapsed; + // 橡皮按钮显示控制 if (Eraser_Icon != null && EraserByStrokes_Icon != null) { diff --git a/Ink Canvas/MainWindow_cs/MW_SettingsToLoad.cs b/Ink Canvas/MainWindow_cs/MW_SettingsToLoad.cs index 9607b099..a7c867a5 100644 --- a/Ink Canvas/MainWindow_cs/MW_SettingsToLoad.cs +++ b/Ink Canvas/MainWindow_cs/MW_SettingsToLoad.cs @@ -314,6 +314,8 @@ namespace Ink_Canvas ToggleSwitchShowWhiteboardButton.IsOn = Settings.Appearance.IsShowWhiteboardButton; ToggleSwitchShowHideButton.IsOn = Settings.Appearance.IsShowHideButton; ToggleSwitchShowQuickColorPalette.IsOn = Settings.Appearance.IsShowQuickColorPalette; + ToggleSwitchShowLassoSelectButton.IsOn = Settings.Appearance.IsShowLassoSelectButton; + ToggleSwitchShowClearAndMouseButton.IsOn = Settings.Appearance.IsShowClearAndMouseButton; ComboBoxEraserDisplayOption.SelectedIndex = Settings.Appearance.EraserDisplayOption; // 初始化快捷调色盘指示器 diff --git a/Ink Canvas/Resources/Settings.cs b/Ink Canvas/Resources/Settings.cs index a6d7bb13..9d1fe64c 100644 --- a/Ink Canvas/Resources/Settings.cs +++ b/Ink Canvas/Resources/Settings.cs @@ -207,13 +207,18 @@ namespace Ink_Canvas [JsonProperty("isShowWhiteboardButton")] public bool IsShowWhiteboardButton { get; set; } = true; [JsonProperty("isShowHideButton")] - public bool IsShowHideButton { get; set; } = true; - + public bool IsShowHideButton { get; set; } = true; + [JsonProperty("isShowLassoSelectButton")] + public bool IsShowLassoSelectButton { get; set; } = true; + [JsonProperty("isShowClearAndMouseButton")] + public bool IsShowClearAndMouseButton { get; set; } = true; + [JsonProperty("eraserDisplayOption")] public int EraserDisplayOption { get; set; } = 0; [JsonProperty("isShowQuickColorPalette")] - public bool IsShowQuickColorPalette { get; set; } = false; + public bool IsShowQuickColorPalette { get; set; } = false; + } public class PowerPointSettings diff --git a/Ink Canvas/obj/Debug/net472/InkCanvasForClass.csproj.AssemblyReference.cache b/Ink Canvas/obj/Debug/net472/InkCanvasForClass.csproj.AssemblyReference.cache index 94f2ebdb..09499edb 100644 Binary files a/Ink Canvas/obj/Debug/net472/InkCanvasForClass.csproj.AssemblyReference.cache and b/Ink Canvas/obj/Debug/net472/InkCanvasForClass.csproj.AssemblyReference.cache differ