优化代码

This commit is contained in:
2025-08-31 07:54:43 +08:00
parent d76195f7ae
commit 80503dc42e
7 changed files with 87 additions and 67 deletions
+3 -3
View File
@@ -1512,14 +1512,14 @@ namespace Ink_Canvas.Helpers
{ {
try try
{ {
LogHelper.WriteLogToFile("DeviceIdentifier | 开始关机时保存使用时间数据", LogHelper.LogType.Info); LogHelper.WriteLogToFile("DeviceIdentifier | 开始关机时保存使用时间数据");
// 1. 加载现有使用统计数据 // 1. 加载现有使用统计数据
var stats = LoadUsageStats(); var stats = LoadUsageStats();
if (stats == null) if (stats == null)
{ {
stats = new UsageStats { DeviceId = DeviceId }; stats = new UsageStats { DeviceId = DeviceId };
LogHelper.WriteLogToFile("DeviceIdentifier | 创建新的使用统计数据", LogHelper.LogType.Info); LogHelper.WriteLogToFile("DeviceIdentifier | 创建新的使用统计数据");
} }
// 2. 计算本次会话时长(防止异常值) // 2. 计算本次会话时长(防止异常值)
@@ -1542,7 +1542,7 @@ namespace Ink_Canvas.Helpers
// 4. 保存数据 // 4. 保存数据
SaveUsageStats(stats); SaveUsageStats(stats);
LogHelper.WriteLogToFile("DeviceIdentifier | 关机保存完成", LogHelper.LogType.Info); LogHelper.WriteLogToFile("DeviceIdentifier | 关机保存完成");
} }
catch (Exception ex) catch (Exception ex)
{ {
+10 -10
View File
@@ -175,7 +175,7 @@ namespace Ink_Canvas.Helpers
{ {
if (!File.Exists(HotkeyConfigFile)) if (!File.Exists(HotkeyConfigFile))
{ {
LogHelper.WriteLogToFile("快捷键配置文件不存在", LogHelper.LogType.Info); LogHelper.WriteLogToFile("快捷键配置文件不存在");
return new List<HotkeyInfo>(); return new List<HotkeyInfo>();
} }
@@ -208,7 +208,7 @@ namespace Ink_Canvas.Helpers
}); });
} }
LogHelper.WriteLogToFile($"从配置文件读取到 {hotkeyList.Count} 个快捷键信息", LogHelper.LogType.Info); LogHelper.WriteLogToFile($"从配置文件读取到 {hotkeyList.Count} 个快捷键信息");
return hotkeyList; return hotkeyList;
} }
catch (Exception ex) catch (Exception ex)
@@ -284,14 +284,14 @@ namespace Ink_Canvas.Helpers
{ {
// 成功从配置文件加载快捷键设置 // 成功从配置文件加载快捷键设置
_hotkeysShouldBeRegistered = true; _hotkeysShouldBeRegistered = true;
LogHelper.WriteLogToFile("成功从配置文件加载快捷键设置", LogHelper.LogType.Info); LogHelper.WriteLogToFile("成功从配置文件加载快捷键设置");
} }
else else
{ {
// 如果配置文件不存在或加载失败,使用默认快捷键 // 如果配置文件不存在或加载失败,使用默认快捷键
if (!File.Exists(HotkeyConfigFile)) if (!File.Exists(HotkeyConfigFile))
{ {
LogHelper.WriteLogToFile("配置文件不存在,注册默认快捷键", LogHelper.LogType.Info); LogHelper.WriteLogToFile("配置文件不存在,注册默认快捷键");
RegisterDefaultHotkeys(); RegisterDefaultHotkeys();
_hotkeysShouldBeRegistered = true; _hotkeysShouldBeRegistered = true;
} }
@@ -345,14 +345,14 @@ namespace Ink_Canvas.Helpers
if (!_hotkeysShouldBeRegistered) if (!_hotkeysShouldBeRegistered)
{ {
_hotkeysShouldBeRegistered = true; _hotkeysShouldBeRegistered = true;
LogHelper.WriteLogToFile("启用快捷键注册功能", LogHelper.LogType.Info); LogHelper.WriteLogToFile("启用快捷键注册功能");
// 立即加载快捷键设置 // 立即加载快捷键设置
LoadHotkeysFromSettings(); LoadHotkeysFromSettings();
} }
else else
{ {
LogHelper.WriteLogToFile("快捷键注册功能已经启用,重新加载快捷键设置", LogHelper.LogType.Info); LogHelper.WriteLogToFile("快捷键注册功能已经启用,重新加载快捷键设置");
// 即使已经启用,也要重新加载快捷键设置以确保快捷键正常工作 // 即使已经启用,也要重新加载快捷键设置以确保快捷键正常工作
LoadHotkeysFromSettings(); LoadHotkeysFromSettings();
} }
@@ -374,14 +374,14 @@ namespace Ink_Canvas.Helpers
if (_hotkeysShouldBeRegistered) if (_hotkeysShouldBeRegistered)
{ {
_hotkeysShouldBeRegistered = false; _hotkeysShouldBeRegistered = false;
LogHelper.WriteLogToFile("禁用快捷键注册功能", LogHelper.LogType.Info); LogHelper.WriteLogToFile("禁用快捷键注册功能");
// 注销所有快捷键 // 注销所有快捷键
UnregisterAllHotkeys(); UnregisterAllHotkeys();
} }
else else
{ {
LogHelper.WriteLogToFile("快捷键注册功能已经禁用", LogHelper.LogType.Info); LogHelper.WriteLogToFile("快捷键注册功能已经禁用");
} }
} }
catch (Exception ex) catch (Exception ex)
@@ -403,13 +403,13 @@ namespace Ink_Canvas.Helpers
{ {
// 鼠标模式下禁用快捷键,让键盘操作放行 // 鼠标模式下禁用快捷键,让键盘操作放行
DisableHotkeyRegistration(); DisableHotkeyRegistration();
LogHelper.WriteLogToFile("切换到鼠标模式,禁用快捷键以放行键盘操作", LogHelper.LogType.Info); LogHelper.WriteLogToFile("切换到鼠标模式,禁用快捷键以放行键盘操作");
} }
else else
{ {
// 非鼠标模式下启用快捷键 // 非鼠标模式下启用快捷键
EnableHotkeyRegistration(); EnableHotkeyRegistration();
LogHelper.WriteLogToFile("切换到非鼠标模式,启用快捷键", LogHelper.LogType.Info); LogHelper.WriteLogToFile("切换到非鼠标模式,启用快捷键");
} }
} }
catch (Exception ex) catch (Exception ex)
+2 -2
View File
@@ -258,7 +258,7 @@ namespace Ink_Canvas.Helpers
public void Enable() public void Enable()
{ {
IsEnabled = true; IsEnabled = true;
LogHelper.WriteLogToFile("墨迹渐隐功能已启用", LogHelper.LogType.Info); LogHelper.WriteLogToFile("墨迹渐隐功能已启用");
} }
/// <summary> /// <summary>
@@ -267,7 +267,7 @@ namespace Ink_Canvas.Helpers
public void Disable() public void Disable()
{ {
IsEnabled = false; IsEnabled = false;
LogHelper.WriteLogToFile("墨迹渐隐功能已禁用", LogHelper.LogType.Info); LogHelper.WriteLogToFile("墨迹渐隐功能已禁用");
} }
#endregion #endregion
+40 -20
View File
@@ -748,19 +748,30 @@ namespace Ink_Canvas
InkCanvas.SetLeft(clonedImage, InkCanvas.GetLeft(image) + 20); InkCanvas.SetLeft(clonedImage, InkCanvas.GetLeft(image) + 20);
InkCanvas.SetTop(clonedImage, InkCanvas.GetTop(image) + 20); InkCanvas.SetTop(clonedImage, InkCanvas.GetTop(image) + 20);
// 设置图片属性,避免被InkCanvas选择系统处理
clonedImage.IsHitTestVisible = true;
clonedImage.Focusable = false;
// 初始化变换
InitializeElementTransform(clonedImage);
// 绑定事件
BindElementEvents(clonedImage);
// 添加到画布 // 添加到画布
inkCanvas.Children.Add(clonedImage); inkCanvas.Children.Add(clonedImage);
// 提交到时间机器以支持撤销 // 提交到时间机器以支持撤销
timeMachine.CommitElementInsertHistory(clonedImage); timeMachine.CommitElementInsertHistory(clonedImage);
return clonedImage;
} }
catch (Exception ex) catch (Exception ex)
{ {
// 记录错误但不中断程序 // 记录错误但不中断程序
System.Diagnostics.Debug.WriteLine($"克隆图片时发生错误: {ex.Message}"); LogHelper.WriteLogToFile($"克隆图片时发生错误: {ex.Message}", LogHelper.LogType.Error);
return null;
} }
return null;
} }
/// <summary> /// <summary>
@@ -1064,23 +1075,32 @@ namespace Ink_Canvas
{ {
if (currentSelectedElement is Image originalImage) if (currentSelectedElement is Image originalImage)
{ {
// 创建克隆图片 // 创建新页面
Image clonedImage = CloneImage(originalImage); BtnWhiteBoardAdd_Click(null, null);
// 这里可以添加切换到新页面的逻辑 // 创建克隆图片(不添加到当前画布,因为已经创建了新页面)
// 暂时先添加到当前页面 Image clonedImage = CreateClonedImage(originalImage);
inkCanvas.Children.Add(clonedImage);
// 初始化变换 if (clonedImage != null)
InitializeElementTransform(clonedImage); {
// 设置图片属性,避免被InkCanvas选择系统处理
// 绑定事件 clonedImage.IsHitTestVisible = true;
BindElementEvents(clonedImage); clonedImage.Focusable = false;
// 记录历史 // 初始化变换
timeMachine.CommitElementInsertHistory(clonedImage); InitializeElementTransform(clonedImage);
LogHelper.WriteLogToFile($"图片克隆到新页面完成: {clonedImage.Name}"); // 绑定事件
BindElementEvents(clonedImage);
// 添加到新页面的画布
inkCanvas.Children.Add(clonedImage);
// 记录历史
timeMachine.CommitElementInsertHistory(clonedImage);
LogHelper.WriteLogToFile($"图片克隆到新页面完成: {clonedImage.Name}");
}
} }
} }
catch (Exception ex) catch (Exception ex)
@@ -1185,7 +1205,7 @@ namespace Ink_Canvas
} }
} }
// 克隆图片的辅助方法 // 克隆图片的辅助方法(只创建图片,不添加到画布)
private Image CreateClonedImage(Image originalImage) private Image CreateClonedImage(Image originalImage)
{ {
try try
@@ -1204,7 +1224,7 @@ namespace Ink_Canvas
clonedImage.Stretch = originalImage.Stretch; clonedImage.Stretch = originalImage.Stretch;
clonedImage.StretchDirection = originalImage.StretchDirection; clonedImage.StretchDirection = originalImage.StretchDirection;
// 复制位置 // 复制位置(在新页面中居中显示)
double left = InkCanvas.GetLeft(originalImage); double left = InkCanvas.GetLeft(originalImage);
double top = InkCanvas.GetTop(originalImage); double top = InkCanvas.GetTop(originalImage);
InkCanvas.SetLeft(clonedImage, left + 20); // 稍微偏移位置 InkCanvas.SetLeft(clonedImage, left + 20); // 稍微偏移位置
@@ -2077,9 +2077,9 @@ namespace Ink_Canvas
{ {
highlighterColor = 100; // 黑色荧光笔 highlighterColor = 100; // 黑色荧光笔
} }
else if (color == Colors.Yellow || IsColorSimilar(color, Color.FromRgb(234, 179, 8), 15) || else if (color == Colors.Yellow || IsColorSimilar(color, Color.FromRgb(234, 179, 8)) ||
IsColorSimilar(color, Color.FromRgb(250, 204, 21), 15) || IsColorSimilar(color, Color.FromRgb(250, 204, 21)) ||
IsColorSimilar(color, Color.FromRgb(253, 224, 71), 15)) IsColorSimilar(color, Color.FromRgb(253, 224, 71)))
{ {
highlighterColor = 103; // 黄色荧光笔 highlighterColor = 103; // 黄色荧光笔
} }
@@ -2094,12 +2094,12 @@ namespace Ink_Canvas
{ {
highlighterColor = 106; // 蓝色荧光笔 highlighterColor = 106; // 蓝色荧光笔
} }
else if (color == Colors.Red || IsColorSimilar(color, Color.FromRgb(220, 38, 38), 15) || else if (color == Colors.Red || IsColorSimilar(color, Color.FromRgb(220, 38, 38)) ||
IsColorSimilar(color, Color.FromRgb(239, 68, 68), 15)) IsColorSimilar(color, Color.FromRgb(239, 68, 68)))
{ {
highlighterColor = 102; // 红色荧光笔 highlighterColor = 102; // 红色荧光笔
} }
else if (color == Colors.Green || IsColorSimilar(color, Color.FromRgb(22, 163, 74), 15)) else if (color == Colors.Green || IsColorSimilar(color, Color.FromRgb(22, 163, 74)))
{ {
highlighterColor = 104; // 绿色荧光笔 highlighterColor = 104; // 绿色荧光笔
} }
+14 -14
View File
@@ -162,13 +162,13 @@ namespace Ink_Canvas
return; return;
} }
LogHelper.WriteLogToFile($"MainWindow_StylusDown 被调用,笔尾状态: {e.StylusDevice.Inverted}, 当前 drawingShapeMode: {drawingShapeMode}, 当前 EditingMode: {inkCanvas.EditingMode}", LogHelper.LogType.Info); LogHelper.WriteLogToFile($"MainWindow_StylusDown 被调用,笔尾状态: {e.StylusDevice.Inverted}, 当前 drawingShapeMode: {drawingShapeMode}, 当前 EditingMode: {inkCanvas.EditingMode}");
// 新增:根据是否为笔尾自动切换橡皮擦/画笔模式 // 新增:根据是否为笔尾自动切换橡皮擦/画笔模式
if (e.StylusDevice.Inverted) if (e.StylusDevice.Inverted)
{ {
inkCanvas.EditingMode = InkCanvasEditingMode.EraseByPoint; inkCanvas.EditingMode = InkCanvasEditingMode.EraseByPoint;
LogHelper.WriteLogToFile("检测到笔尾,设置 EditingMode 为 EraseByPoint", LogHelper.LogType.Info); LogHelper.WriteLogToFile("检测到笔尾,设置 EditingMode 为 EraseByPoint");
} }
else else
{ {
@@ -177,18 +177,18 @@ namespace Ink_Canvas
{ {
// 确保几何绘制模式下不切换到Ink模式,避免触摸轨迹被收集 // 确保几何绘制模式下不切换到Ink模式,避免触摸轨迹被收集
inkCanvas.EditingMode = InkCanvasEditingMode.None; inkCanvas.EditingMode = InkCanvasEditingMode.None;
LogHelper.WriteLogToFile("几何绘制模式,设置 EditingMode 为 None", LogHelper.LogType.Info); LogHelper.WriteLogToFile("几何绘制模式,设置 EditingMode 为 None");
return; return;
} }
// 修复:保持当前的线擦模式,不要强制切换到Ink模式 // 修复:保持当前的线擦模式,不要强制切换到Ink模式
if (inkCanvas.EditingMode != InkCanvasEditingMode.EraseByStroke) if (inkCanvas.EditingMode != InkCanvasEditingMode.EraseByStroke)
{ {
inkCanvas.EditingMode = InkCanvasEditingMode.Ink; inkCanvas.EditingMode = InkCanvasEditingMode.Ink;
LogHelper.WriteLogToFile("设置 EditingMode 为 Ink", LogHelper.LogType.Info); LogHelper.WriteLogToFile("设置 EditingMode 为 Ink");
} }
else else
{ {
LogHelper.WriteLogToFile("保持当前线擦模式", LogHelper.LogType.Info); LogHelper.WriteLogToFile("保持当前线擦模式");
} }
} }
SetCursorBasedOnEditingMode(inkCanvas); SetCursorBasedOnEditingMode(inkCanvas);
@@ -230,14 +230,14 @@ namespace Ink_Canvas
{ {
try try
{ {
LogHelper.WriteLogToFile($"MainWindow_StylusUp 被调用,EditingMode: {inkCanvas.EditingMode}, EnableInkFade: {Settings.Canvas.EnableInkFade}", LogHelper.LogType.Info); LogHelper.WriteLogToFile($"MainWindow_StylusUp 被调用,EditingMode: {inkCanvas.EditingMode}, EnableInkFade: {Settings.Canvas.EnableInkFade}");
var stroke = GetStrokeVisual(e.StylusDevice.Id).Stroke; var stroke = GetStrokeVisual(e.StylusDevice.Id).Stroke;
LogHelper.WriteLogToFile($"获取到墨迹,StylusPoints数量: {stroke.StylusPoints.Count}", LogHelper.LogType.Info); LogHelper.WriteLogToFile($"获取到墨迹,StylusPoints数量: {stroke.StylusPoints.Count}");
// 正常模式:添加到画布并参与墨迹纠正 // 正常模式:添加到画布并参与墨迹纠正
// 墨迹渐隐功能现在在 StrokeCollected 事件中统一处理所有输入方式 // 墨迹渐隐功能现在在 StrokeCollected 事件中统一处理所有输入方式
LogHelper.WriteLogToFile("StylusUp: 添加墨迹到画布", LogHelper.LogType.Info); LogHelper.WriteLogToFile("StylusUp: 添加墨迹到画布");
inkCanvas.Strokes.Add(stroke); inkCanvas.Strokes.Add(stroke);
await Task.Delay(5); // 避免渲染墨迹完成前预览墨迹被删除导致墨迹闪烁 await Task.Delay(5); // 避免渲染墨迹完成前预览墨迹被删除导致墨迹闪烁
@@ -528,7 +528,7 @@ namespace Ink_Canvas
StartPalmEraserRecoveryTimer(); StartPalmEraserRecoveryTimer();
// 记录日志 // 记录日志
LogHelper.WriteLogToFile($"Palm eraser activated - Sensitivity: {Settings.Canvas.PalmEraserSensitivity}, Touch bounds: {bounds.Width}x{bounds.Height}, Aspect ratio: {aspectRatio:F2}, Touch points: {dec.Count}", LogHelper.LogType.Info); LogHelper.WriteLogToFile($"Palm eraser activated - Sensitivity: {Settings.Canvas.PalmEraserSensitivity}, Touch bounds: {bounds.Width}x{bounds.Height}, Aspect ratio: {aspectRatio:F2}, Touch points: {dec.Count}");
} }
} }
@@ -623,7 +623,7 @@ namespace Ink_Canvas
break; break;
} }
LogHelper.WriteLogToFile($"Palm eraser recovered to mode: {palmEraserLastEditingMode}", LogHelper.LogType.Info); LogHelper.WriteLogToFile($"Palm eraser recovered to mode: {palmEraserLastEditingMode}");
} }
} }
catch (Exception ex) catch (Exception ex)
@@ -648,7 +648,7 @@ namespace Ink_Canvas
ViewboxFloatingBar.IsHitTestVisible = true; ViewboxFloatingBar.IsHitTestVisible = true;
BlackboardUIGridForInkReplay.IsHitTestVisible = true; BlackboardUIGridForInkReplay.IsHitTestVisible = true;
LogHelper.WriteLogToFile("Palm eraser state reset completed", LogHelper.LogType.Info); LogHelper.WriteLogToFile("Palm eraser state reset completed");
} }
// 新增:超时检测 - 如果手掌擦激活时间过长,强制重置状态 // 新增:超时检测 - 如果手掌擦激活时间过长,强制重置状态
@@ -697,7 +697,7 @@ namespace Ink_Canvas
// 停止恢复定时器 // 停止恢复定时器
StopPalmEraserRecoveryTimer(); StopPalmEraserRecoveryTimer();
LogHelper.WriteLogToFile("Palm eraser timeout recovery completed", LogHelper.LogType.Info); LogHelper.WriteLogToFile("Palm eraser timeout recovery completed");
} }
} }
// 修复:几何绘制模式下,触摸抬手时应该正确处理,而不是简单模拟鼠标事件 // 修复:几何绘制模式下,触摸抬手时应该正确处理,而不是简单模拟鼠标事件
@@ -1033,7 +1033,7 @@ namespace Ink_Canvas
break; break;
} }
LogHelper.WriteLogToFile($"Palm eraser timer recovery to mode: {palmEraserLastEditingMode}", LogHelper.LogType.Info); LogHelper.WriteLogToFile($"Palm eraser timer recovery to mode: {palmEraserLastEditingMode}");
} }
} }
catch (Exception ex) catch (Exception ex)
@@ -1055,7 +1055,7 @@ namespace Ink_Canvas
// 停止定时器 // 停止定时器
StopPalmEraserRecoveryTimer(); StopPalmEraserRecoveryTimer();
LogHelper.WriteLogToFile("Palm eraser timer recovery completed", LogHelper.LogType.Info); LogHelper.WriteLogToFile("Palm eraser timer recovery completed");
} }
} }
} }
+12 -12
View File
@@ -57,7 +57,7 @@ namespace Ink_Canvas.Windows
{ {
try try
{ {
LogHelper.WriteLogToFile("开始初始化快捷键项", LogHelper.LogType.Info); LogHelper.WriteLogToFile("开始初始化快捷键项");
// 初始化快捷键项并设置HotkeyName // 初始化快捷键项并设置HotkeyName
_hotkeyItems["Undo"] = UndoHotkey; _hotkeyItems["Undo"] = UndoHotkey;
@@ -114,7 +114,7 @@ namespace Ink_Canvas.Windows
_hotkeyItems["Exit"] = ExitHotkey; _hotkeyItems["Exit"] = ExitHotkey;
ExitHotkey.HotkeyName = "Exit"; ExitHotkey.HotkeyName = "Exit";
LogHelper.WriteLogToFile($"成功初始化 {_hotkeyItems.Count} 个快捷键项", LogHelper.LogType.Info); LogHelper.WriteLogToFile($"成功初始化 {_hotkeyItems.Count} 个快捷键项");
} }
catch (Exception ex) catch (Exception ex)
{ {
@@ -128,7 +128,7 @@ namespace Ink_Canvas.Windows
{ {
// 首先尝试从配置文件获取快捷键信息 // 首先尝试从配置文件获取快捷键信息
var configHotkeys = _hotkeyManager.GetHotkeysFromConfigFile(); var configHotkeys = _hotkeyManager.GetHotkeysFromConfigFile();
LogHelper.WriteLogToFile($"配置文件中的快捷键数量: {configHotkeys.Count}", LogHelper.LogType.Info); LogHelper.WriteLogToFile($"配置文件中的快捷键数量: {configHotkeys.Count}");
// 显示配置文件中的快捷键 // 显示配置文件中的快捷键
foreach (var hotkey in configHotkeys) foreach (var hotkey in configHotkeys)
@@ -136,7 +136,7 @@ namespace Ink_Canvas.Windows
if (_hotkeyItems.TryGetValue(hotkey.Name, out var hotkeyItem)) if (_hotkeyItems.TryGetValue(hotkey.Name, out var hotkeyItem))
{ {
hotkeyItem.SetCurrentHotkey(hotkey.Key, hotkey.Modifiers); hotkeyItem.SetCurrentHotkey(hotkey.Key, hotkey.Modifiers);
LogHelper.WriteLogToFile($"从配置文件设置快捷键项: {hotkey.Name} -> {hotkey.Modifiers}+{hotkey.Key}", LogHelper.LogType.Info); LogHelper.WriteLogToFile($"从配置文件设置快捷键项: {hotkey.Name} -> {hotkey.Modifiers}+{hotkey.Key}");
} }
} }
@@ -148,7 +148,7 @@ namespace Ink_Canvas.Windows
{ {
// 根据DefaultKey和DefaultModifiers设置默认显示值 // 根据DefaultKey和DefaultModifiers设置默认显示值
SetDefaultHotkeyForItem(hotkeyItem); SetDefaultHotkeyForItem(hotkeyItem);
LogHelper.WriteLogToFile($"设置默认显示值: {hotkeyItem.HotkeyName}", LogHelper.LogType.Info); LogHelper.WriteLogToFile($"设置默认显示值: {hotkeyItem.HotkeyName}");
} }
} }
} }
@@ -243,7 +243,7 @@ namespace Ink_Canvas.Windows
{ {
try try
{ {
LogHelper.WriteLogToFile($"收到快捷键变更事件: {e.HotkeyName} -> {e.Modifiers}+{e.Key}", LogHelper.LogType.Info); LogHelper.WriteLogToFile($"收到快捷键变更事件: {e.HotkeyName} -> {e.Modifiers}+{e.Key}");
// 检查快捷键冲突 // 检查快捷键冲突
if (IsHotkeyConflict(e.Key, e.Modifiers, e.HotkeyName)) if (IsHotkeyConflict(e.Key, e.Modifiers, e.HotkeyName))
@@ -305,30 +305,30 @@ namespace Ink_Canvas.Windows
{ {
try try
{ {
LogHelper.WriteLogToFile($"开始更新快捷键: {hotkeyName} -> {modifiers}+{key}", LogHelper.LogType.Info); LogHelper.WriteLogToFile($"开始更新快捷键: {hotkeyName} -> {modifiers}+{key}");
// 先注销原有的快捷键(如果存在) // 先注销原有的快捷键(如果存在)
_hotkeyManager.UnregisterHotkey(hotkeyName); _hotkeyManager.UnregisterHotkey(hotkeyName);
LogHelper.WriteLogToFile($"已注销原有快捷键: {hotkeyName}", LogHelper.LogType.Info); LogHelper.WriteLogToFile($"已注销原有快捷键: {hotkeyName}");
// 根据快捷键名称获取对应的动作 // 根据快捷键名称获取对应的动作
var action = GetActionForHotkey(hotkeyName); var action = GetActionForHotkey(hotkeyName);
if (action != null) if (action != null)
{ {
LogHelper.WriteLogToFile($"找到快捷键动作: {hotkeyName}", LogHelper.LogType.Info); LogHelper.WriteLogToFile($"找到快捷键动作: {hotkeyName}");
// 直接注册新的快捷键 // 直接注册新的快捷键
if (_hotkeyManager.RegisterHotkey(hotkeyName, key, modifiers, action)) if (_hotkeyManager.RegisterHotkey(hotkeyName, key, modifiers, action))
{ {
LogHelper.WriteLogToFile($"成功注册新快捷键: {hotkeyName} -> {modifiers}+{key}", LogHelper.LogType.Info); LogHelper.WriteLogToFile($"成功注册新快捷键: {hotkeyName} -> {modifiers}+{key}");
// 立即保存到配置文件 // 立即保存到配置文件
_hotkeyManager.SaveHotkeysToSettings(); _hotkeyManager.SaveHotkeysToSettings();
LogHelper.WriteLogToFile($"已保存快捷键配置", LogHelper.LogType.Info); LogHelper.WriteLogToFile($"已保存快捷键配置");
// 更新UI显示 // 更新UI显示
LoadCurrentHotkeys(); LoadCurrentHotkeys();
LogHelper.WriteLogToFile($"已更新UI显示", LogHelper.LogType.Info); LogHelper.WriteLogToFile($"已更新UI显示");
LogHelper.WriteLogToFile($"快捷键 {hotkeyName} 已更新为 {modifiers}+{key} 并保存", LogHelper.LogType.Event); LogHelper.WriteLogToFile($"快捷键 {hotkeyName} 已更新为 {modifiers}+{key} 并保存", LogHelper.LogType.Event);
} }