add:新设置

This commit is contained in:
2025-08-31 17:07:40 +08:00
parent ba21b6884d
commit 6d21c5e24e
2 changed files with 254 additions and 57 deletions
@@ -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;
}
}
}
}
}