From e3d449e85baf9a798603266f4dc1e558ea1df15d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9D=92=E5=B1=B1?= Date: Thu, 21 May 2026 08:32:34 +0800 Subject: [PATCH 1/3] Add pure black background mode with cyclic switching --- .../Popups/BackgroundPalettePopupContent.xaml | 23 ++++++--- .../BackgroundPalettePopupContent.xaml.cs | 1 + Ink Canvas/MainWindow.xaml.cs | 1 + Ink Canvas/MainWindow_cs/MW_BoardIcons.cs | 50 +++++++++++++++---- Ink Canvas/MainWindow_cs/MW_Toolbar.cs | 1 + 5 files changed, 60 insertions(+), 16 deletions(-) diff --git a/Ink Canvas/Controls/Popups/BackgroundPalettePopupContent.xaml b/Ink Canvas/Controls/Popups/BackgroundPalettePopupContent.xaml index cb66224f..3d903a98 100644 --- a/Ink Canvas/Controls/Popups/BackgroundPalettePopupContent.xaml +++ b/Ink Canvas/Controls/Popups/BackgroundPalettePopupContent.xaml @@ -15,22 +15,33 @@ Foreground="{DynamicResource TextForeground}" FontSize="10" FontWeight="Bold" HorizontalAlignment="Center"/> - + - + + + diff --git a/Ink Canvas/Controls/Popups/BackgroundPalettePopupContent.xaml.cs b/Ink Canvas/Controls/Popups/BackgroundPalettePopupContent.xaml.cs index c57d6305..e90b1b4f 100644 --- a/Ink Canvas/Controls/Popups/BackgroundPalettePopupContent.xaml.cs +++ b/Ink Canvas/Controls/Popups/BackgroundPalettePopupContent.xaml.cs @@ -16,6 +16,7 @@ public partial class BackgroundPalettePopupContent : UserControl public Button ApplyBtn => ApplyBackgroundColorBtn; public Border WhiteboardBtn => WhiteboardModeBtn; public Border BlackboardBtn => BlackboardModeBtn; + public Border BlackModeBtn => BlackModeBtn; public Button CloseButtonControl => Shell?.CloseButtonControl; public BackgroundPalettePopupContent() diff --git a/Ink Canvas/MainWindow.xaml.cs b/Ink Canvas/MainWindow.xaml.cs index b4892f97..e1833a5b 100644 --- a/Ink Canvas/MainWindow.xaml.cs +++ b/Ink Canvas/MainWindow.xaml.cs @@ -175,6 +175,7 @@ private void WireUpBackgroundPaletteEvents() var content = BackgroundPalettePopupContent; content.WhiteboardBtn.MouseUp += WhiteboardModeBtn_MouseUp; content.BlackboardBtn.MouseUp += BlackboardModeBtn_MouseUp; + content.BlackModeBtn.MouseUp += BlackModeBtn_MouseUp; content.RSlider.ValueChanged += BackgroundRSlider_ValueChanged; content.GSlider.ValueChanged += BackgroundGSlider_ValueChanged; content.BSlider.ValueChanged += BackgroundBSlider_ValueChanged; diff --git a/Ink Canvas/MainWindow_cs/MW_BoardIcons.cs b/Ink Canvas/MainWindow_cs/MW_BoardIcons.cs index e3f0ced9..03fd0f17 100644 --- a/Ink Canvas/MainWindow_cs/MW_BoardIcons.cs +++ b/Ink Canvas/MainWindow_cs/MW_BoardIcons.cs @@ -23,21 +23,26 @@ public partial class MainWindow : Ink_Canvas.Helpers.PerformanceTransparentWin /// - 处理白板/黑板模式切换 /// - 更新背景颜色和墨迹颜色 /// + private int currentBackgroundMode = 0; // 0: 白板, 1: 黑板(深绿), 2: 纯黑 + private void BoardChangeBackgroundColorBtn_MouseUp(object sender, RoutedEventArgs e) { if (!isLoaded) return; - if (BackgroundPalette.IsOpen) - { - AnimationsHelper.HidePopupWithSlideAndFade(BackgroundPalette); - } - else + // 循环切换背景模式 + currentBackgroundMode = (currentBackgroundMode + 1) % 3; + + switch (currentBackgroundMode) { - HideSubPanels(); - LoadCustomBackgroundColor(); - UpdateBackgroundButtonsState(); - AnimationsHelper.ShowPopupWithSlideAndFade(BackgroundPalette); - _popupManager?.BringToFront(BackgroundPalette); + case 0: // 白板 + WhiteboardModeBtn_MouseUp(sender, null); + break; + case 1: // 黑板(深绿) + BlackboardModeBtn_MouseUp(sender, null); + break; + case 2: // 纯黑 + BlackModeBtn_MouseUp(sender, null); + break; } } @@ -91,6 +96,31 @@ private void BlackboardModeBtn_MouseUp(object sender, MouseButtonEventArgs e) UpdateBackgroundButtonsState(); } + private void BlackModeBtn_MouseUp(object sender, MouseButtonEventArgs e) + { + Settings.Canvas.UsingWhiteboard = false; + SaveSettingsToFile(); + ICCWaterMarkWhite.Visibility = Visibility.Visible; + ICCWaterMarkDark.Visibility = Visibility.Collapsed; + + Color defaultBlackColor = Color.FromRgb(0, 0, 0); + + if (currentMode == 1) + { + GridBackgroundCover.Background = new SolidColorBrush(defaultBlackColor); + UpdateRGBSliders(defaultBlackColor); + CustomBackgroundColor = defaultBlackColor; + string colorHex = $"#{defaultBlackColor.R:X2}{defaultBlackColor.G:X2}{defaultBlackColor.B:X2}"; + Settings.Canvas.CustomBackgroundColor = colorHex; + SaveSettingsToFile(); + } + + CheckLastColor(5); + forceEraser = false; + CheckColorTheme(true); + UpdateBackgroundButtonsState(); + } + private void BackgroundRSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs e) { if (BackgroundRValue != null) diff --git a/Ink Canvas/MainWindow_cs/MW_Toolbar.cs b/Ink Canvas/MainWindow_cs/MW_Toolbar.cs index 4ec5afe2..dcf682e0 100644 --- a/Ink Canvas/MainWindow_cs/MW_Toolbar.cs +++ b/Ink Canvas/MainWindow_cs/MW_Toolbar.cs @@ -248,6 +248,7 @@ internal int BoardPenSelectedTabIndex internal Button ApplyBackgroundColorBtn => BackgroundPalettePopupContent?.ApplyBtn; internal Border WhiteboardModeBtn => BackgroundPalettePopupContent?.WhiteboardBtn; internal Border BlackboardModeBtn => BackgroundPalettePopupContent?.BlackboardBtn; + internal Border BlackModeBtn => BackgroundPalettePopupContent?.BlackModeBtn; #endregion #region QuickColorPalette property mappings From db9ff578c00a5439f08b3ce1d5e0926f21cdffbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9D=92=E5=B1=B1?= Date: Thu, 21 May 2026 09:10:15 +0800 Subject: [PATCH 2/3] Fix duplicate definition error for BlackModeBtn --- Ink Canvas/Controls/Popups/BackgroundPalettePopupContent.xaml.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/Ink Canvas/Controls/Popups/BackgroundPalettePopupContent.xaml.cs b/Ink Canvas/Controls/Popups/BackgroundPalettePopupContent.xaml.cs index e90b1b4f..c57d6305 100644 --- a/Ink Canvas/Controls/Popups/BackgroundPalettePopupContent.xaml.cs +++ b/Ink Canvas/Controls/Popups/BackgroundPalettePopupContent.xaml.cs @@ -16,7 +16,6 @@ public partial class BackgroundPalettePopupContent : UserControl public Button ApplyBtn => ApplyBackgroundColorBtn; public Border WhiteboardBtn => WhiteboardModeBtn; public Border BlackboardBtn => BlackboardModeBtn; - public Border BlackModeBtn => BlackModeBtn; public Button CloseButtonControl => Shell?.CloseButtonControl; public BackgroundPalettePopupContent() From 30f4c839d0d3c50ffb79190bfebf963e0ff4ae87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9D=92=E5=B1=B1?= Date: Thu, 21 May 2026 09:12:10 +0800 Subject: [PATCH 3/3] Remove duplicate BlackModeBtn property mapping in MW_Toolbar.cs --- Ink Canvas/MainWindow_cs/MW_Toolbar.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/Ink Canvas/MainWindow_cs/MW_Toolbar.cs b/Ink Canvas/MainWindow_cs/MW_Toolbar.cs index dcf682e0..4ec5afe2 100644 --- a/Ink Canvas/MainWindow_cs/MW_Toolbar.cs +++ b/Ink Canvas/MainWindow_cs/MW_Toolbar.cs @@ -248,7 +248,6 @@ internal int BoardPenSelectedTabIndex internal Button ApplyBackgroundColorBtn => BackgroundPalettePopupContent?.ApplyBtn; internal Border WhiteboardModeBtn => BackgroundPalettePopupContent?.WhiteboardBtn; internal Border BlackboardModeBtn => BackgroundPalettePopupContent?.BlackboardBtn; - internal Border BlackModeBtn => BackgroundPalettePopupContent?.BlackModeBtn; #endregion #region QuickColorPalette property mappings