Skip to content

v1.0.8

Choose a tag to compare

@github-actions github-actions released this 26 Feb 18:20
· 153 commits to main since this release
  • 2026-02-27

[SYS_MSG] 标注工具架构重构,采用策略模式实现高内聚低耦合。
[METRICS] Binary: <1MB

✨ 新特性

  • 架构重构 - 标注工具采用策略模式,实现高内聚低耦合
    • 新增 IAnnotationTool 接口,定义工具行为契约
    • 新增 AnnotationToolContext,封装绘图环境
    • 新增 AnnotationToolFactory,工厂模式创建工具
    • 新增 UndoAction,支持多画布撤销/重做

🔧 重构优化

  • 工具独立化 - 每个标注工具拆分为独立类
    • RectangleTool:矩形标注
    • ArrowTool:箭头标注(含几何计算)
    • TextTool:文字标注(含TextBox交互)
    • MosaicTool:马赛克标注(含轨迹绘制)
    • StepMarkerTool:步骤序号标注
  • 主窗口精简 - CaptureOverlayWindow.xaml.cs 从 ~1400 行精简至 ~1000 行
  • 代码清理 - 删除废弃方法(CreateArrowGeometry、CreateMosaicBrush等)

🐛 问题修复

  • [重构] 撤销功能失效 - 改用 _toolContext.Undo()
  • [重构] 文字工具失效 - 移除 MouseDown 对 Text 类型的拦截
  • [重构] 上下文频繁重建 - ShowToolbar 全局初始化 Context
  • [重构] 切换颜色不生效 - 实时更新 Context 样式
  • [重构] 闭包捕获陷阱 - 删除工具类 OnDeselected 中的 _context = null
  • [重构] 撤销栈容量限制 - 修正 PushToUndo 方法的索引逻辑
  • [重构] 重复调用 OnComplete - 删除主窗口 MouseUp 中的冗余调用
  • [重构] 幽灵上下文 - ResetToSelectingState/ResetToInitialState 清理工具状态
  • [重构] 鼠标锁死 - 右键取消时释放鼠标捕获
  • [重构] 步骤序号重置 - OnSelected 中重新添加计数器重置
  • [重构] 颜色时序问题 - Tool_Checked 中调整 UpdateToolContextStyle 调用顺序