From beebfb0daeabd102101aa9f63575d235b286dd99 Mon Sep 17 00:00:00 2001 From: CJKmkp <2564608840@qq.com> Date: Sun, 21 Sep 2025 00:39:30 +0800 Subject: [PATCH] =?UTF-8?q?add:=E4=B8=BB=E9=A2=98=E5=88=87=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ink Canvas/MainWindow_cs/MW_AutoTheme.cs | 71 +++++++++++++++++++++++- 1 file changed, 68 insertions(+), 3 deletions(-) diff --git a/Ink Canvas/MainWindow_cs/MW_AutoTheme.cs b/Ink Canvas/MainWindow_cs/MW_AutoTheme.cs index 132c7056..20d7bc9b 100644 --- a/Ink Canvas/MainWindow_cs/MW_AutoTheme.cs +++ b/Ink Canvas/MainWindow_cs/MW_AutoTheme.cs @@ -4,7 +4,6 @@ using System; using System.Collections.Generic; using System.Windows; using System.Windows.Media; -using Ink_Canvas.Helpers; using Application = System.Windows.Application; namespace Ink_Canvas @@ -80,12 +79,78 @@ namespace Ink_Canvas try { FloatBarForegroundColor = (Color)Application.Current.FindResource("FloatBarForegroundColor"); + + // 强制刷新浮动工具栏按钮颜色 + RefreshFloatingBarButtonColors(); } - catch (Exception ex) + catch (Exception) { // 如果无法从资源中加载,使用默认颜色 FloatBarForegroundColor = Color.FromRgb(0, 0, 0); - LogHelper.WriteLogToFile($"初始化FloatBarForegroundColor时出错: {ex.Message}", LogHelper.LogType.Error); + } + } + + /// + /// 刷新浮动工具栏按钮颜色 + /// + private void RefreshFloatingBarButtonColors() + { + try + { + // 选中状态的颜色(蓝底) + var selectedColor = Color.FromRgb(30, 58, 138); + + // 根据当前模式设置按钮颜色 + switch (_currentToolMode) + { + case "cursor": + CursorIconGeometry.Brush = new SolidColorBrush(selectedColor); + PenIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); + StrokeEraserIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); + CircleEraserIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); + LassoSelectIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); + break; + case "pen": + case "color": + CursorIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); + PenIconGeometry.Brush = new SolidColorBrush(selectedColor); + StrokeEraserIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); + CircleEraserIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); + LassoSelectIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); + break; + case "eraser": + CursorIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); + PenIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); + StrokeEraserIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); + CircleEraserIconGeometry.Brush = new SolidColorBrush(selectedColor); + LassoSelectIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); + break; + case "eraserByStrokes": + CursorIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); + PenIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); + StrokeEraserIconGeometry.Brush = new SolidColorBrush(selectedColor); + CircleEraserIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); + LassoSelectIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); + break; + case "select": + CursorIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); + PenIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); + StrokeEraserIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); + CircleEraserIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); + LassoSelectIconGeometry.Brush = new SolidColorBrush(selectedColor); + break; + default: + // 默认情况,所有按钮都使用主题颜色 + CursorIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); + PenIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); + StrokeEraserIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); + CircleEraserIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); + LassoSelectIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); + break; + } + } + catch (Exception) + { } }