From 6d21c5e24e109644e1cab52abde4931c329d5506 Mon Sep 17 00:00:00 2001 From: CJKmkp <2564608840@qq.com> Date: Sun, 31 Aug 2025 17:07:40 +0800 Subject: [PATCH] =?UTF-8?q?add:=E6=96=B0=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Windows/SettingsViews/SettingsWindow.xaml | 114 +++++----- .../SettingsViews/SettingsWindow.xaml.cs | 197 ++++++++++++++++++ 2 files changed, 254 insertions(+), 57 deletions(-) diff --git a/Ink Canvas/Windows/SettingsViews/SettingsWindow.xaml b/Ink Canvas/Windows/SettingsViews/SettingsWindow.xaml index 09bd6a72..101d7abf 100644 --- a/Ink Canvas/Windows/SettingsViews/SettingsWindow.xaml +++ b/Ink Canvas/Windows/SettingsViews/SettingsWindow.xaml @@ -569,7 +569,7 @@ - + @@ -583,7 +583,7 @@ - + @@ -597,7 +597,7 @@ - + @@ -625,7 +625,7 @@ - + @@ -642,7 +642,7 @@ - + @@ -656,7 +656,7 @@ - + @@ -670,19 +670,19 @@ - + - + - + - + - + @@ -712,22 +712,22 @@ - + - + - + - + - + - + @@ -738,13 +738,13 @@ - + - + - + @@ -755,7 +755,7 @@ - + @@ -1849,7 +1849,7 @@ - + @@ -1866,9 +1866,9 @@ - - - + + + @@ -1898,7 +1898,7 @@ - + @@ -1920,7 +1920,7 @@ - + @@ -1942,7 +1942,7 @@ - + @@ -1964,7 +1964,7 @@ - + @@ -1982,10 +1982,10 @@ - + - + @@ -2010,7 +2010,7 @@ - + @@ -2034,7 +2034,7 @@ - + @@ -2048,7 +2048,7 @@ - + @@ -2062,7 +2062,7 @@ - + @@ -2569,7 +2569,7 @@ - + @@ -2586,7 +2586,7 @@ - + @@ -2609,7 +2609,7 @@ - + @@ -3246,13 +3246,13 @@ - + - + - + @@ -3264,10 +3264,10 @@ - + - + @@ -3332,7 +3332,7 @@ - + @@ -3346,7 +3346,7 @@ - + @@ -3371,7 +3371,7 @@ - + @@ -3411,13 +3411,13 @@ - + - + - + @@ -3440,13 +3440,13 @@ - + - + - + @@ -3458,13 +3458,13 @@ - + - + - + @@ -3486,7 +3486,7 @@ - + @@ -3500,7 +3500,7 @@ - + diff --git a/Ink Canvas/Windows/SettingsViews/SettingsWindow.xaml.cs b/Ink Canvas/Windows/SettingsViews/SettingsWindow.xaml.cs index b053abc2..52295040 100644 --- a/Ink Canvas/Windows/SettingsViews/SettingsWindow.xaml.cs +++ b/Ink Canvas/Windows/SettingsViews/SettingsWindow.xaml.cs @@ -391,5 +391,202 @@ namespace Ink_Canvas.Windows { private void MenuButton_Click(object sender, MouseButtonEventArgs e) { // 菜单功能 - 可以显示上下文菜单或选项菜单 } + + private void ToggleSwitch_Click(object sender, MouseButtonEventArgs e) { + var border = sender as Border; + if (border != null) { + // 切换开关状态 + bool isOn = border.Background.ToString() == "#FF3584E4"; + border.Background = isOn ? new SolidColorBrush(Color.FromRgb(225, 225, 225)) : new SolidColorBrush(Color.FromRgb(53, 132, 228)); + + // 切换内部圆点的位置 + var innerBorder = border.Child as Border; + if (innerBorder != null) { + innerBorder.HorizontalAlignment = isOn ? HorizontalAlignment.Left : HorizontalAlignment.Right; + } + + // 根据Tag处理不同的设置项 + string tag = border.Tag?.ToString(); + if (!string.IsNullOrEmpty(tag)) { + HandleSettingChange(tag, !isOn); + } + } + } + + private void HandleSettingChange(string settingName, bool value) { + // 根据设置名称处理不同的设置项 + switch (settingName) { + case "UseObviousCursor": + // 处理使用更加明显的画笔光标设置 + break; + case "HideInkWhenExitAnnotationMode": + // 处理退出批注模式后隐藏墨迹设置 + break; + case "DisablePenPressure": + // 处理禁用模拟笔锋设置 + break; + case "ClearInkWithoutHistory": + // 处理清空墨迹时不保留时光机历史记录设置 + break; + case "UseBlackBackgroundForTransparency": + // 处理AllowTransparency使用黑色背景设置 + break; + case "KeepHyperbolaAsymptote": + // 处理保留双曲线渐近线设置 + break; + case "UseInkEraser": + // 处理使用墨迹擦设置 + break; + case "UseDefaultBackgroundColorForNewPage": + // 处理创建新页时始终使用默认背景色设置 + break; + case "DebugMode": + // 处理调试模式设置 + break; + case "PerformanceMonitoring": + // 处理性能监控设置 + break; + case "AutoRestartOnCrash": + // 处理崩溃时自动重启设置 + break; + case "SendCrashReport": + // 处理发送崩溃报告设置 + break; + case "EnableLuckyRandom": + // 处理启用幸运随机功能设置 + break; + case "EnableInkToShape": + // 处理启用墨迹转形状设置 + break; + case "InkRecognitionRange": + // 处理墨迹识别范围设置 + break; + case "RecognizeQuadrilateral": + // 处理识别四边形设置 + break; + case "RecognizeTriangle": + // 处理识别三角形设置 + break; + case "RecognizeCircle": + // 处理识别圆形设置 + break; + case "RecognizeLine": + // 处理识别直线设置 + break; + case "EnablePressureSimulation": + // 处理启用三角形和矩形每边模拟压力值设置 + break; + case "ConcentricCircleCorrection": + // 处理同心圆识别矫正设置 + break; + case "EnableAutoHide": + // 处理启用自动收纳设置 + break; + case "EnableAutoKill": + // 处理启用自动查杀设置 + break; + case "EnableWhiteboardKiller": + // 处理启用桌面画板悬浮窗杀手设置 + break; + case "EnablePowerPointCom": + // 处理启用 PowerPoint COM 支持设置 + break; + case "EnableWpsCom": + // 处理启用 WPS COM 支持设置 + break; + case "EnableVsto": + // 处理启用 VSTO 支持设置 + break; + default: + // 未知设置项 + break; + } + } + + private void OptionButton_Click(object sender, MouseButtonEventArgs e) { + var border = sender as Border; + if (border != null) { + string tag = border.Tag?.ToString(); + if (!string.IsNullOrEmpty(tag)) { + // 清除同组其他按钮的选中状态 + ClearOtherOptionsInGroup(border, tag); + + // 设置当前按钮为选中状态 + border.Background = new SolidColorBrush(Color.FromRgb(225, 225, 225)); + var textBlock = border.Child as TextBlock; + if (textBlock != null) { + textBlock.FontWeight = FontWeights.Bold; + } + + // 处理选项变化 + HandleOptionChange(tag); + } + } + } + + private void ClearOtherOptionsInGroup(Border currentBorder, string currentTag) { + // 获取当前按钮所在的父容器 + var parent = currentBorder.Parent as StackPanel; + if (parent != null) { + // 获取组名(Tag中下划线前的部分) + string groupName = currentTag.Split('_')[0]; + + // 清除同组其他按钮的选中状态 + foreach (var child in parent.Children) { + if (child is Border border && border != currentBorder) { + string childTag = border.Tag?.ToString(); + if (!string.IsNullOrEmpty(childTag) && childTag.StartsWith(groupName + "_")) { + border.Background = new SolidColorBrush(Colors.Transparent); + var textBlock = border.Child as TextBlock; + if (textBlock != null) { + textBlock.FontWeight = FontWeights.Normal; + } + } + } + } + } + } + + private void HandleOptionChange(string optionTag) { + // 根据选项标签处理不同的选项变化 + string[] parts = optionTag.Split('_'); + if (parts.Length >= 2) { + string group = parts[0]; + string value = parts[1]; + + switch (group) { + case "EraserSize": + // 处理板擦橡皮大小设置 + break; + case "DefaultBackgroundColor": + // 处理默认背景色设置 + break; + case "DefaultPaperFormat": + // 处理默认稿纸格式设置 + break; + case "AutoSaveInterval": + // 处理自动保存间隔设置 + break; + case "ScreenshotQuality": + // 处理截图质量设置 + break; + case "ScreenshotFormat": + // 处理截图格式设置 + break; + case "InkRecognitionBehavior": + // 处理墨迹识别后转换行为设置 + break; + case "Theme": + // 处理主题设置 + break; + case "Language": + // 处理语言设置 + break; + default: + // 未知选项组 + break; + } + } + } } }