一款基于 Avalonia 和 .NET 构建的创新桌面绘图应用,采用 Windows 11 Fluent Design 设计语言,深度集成 PowerPoint 幻灯片批注。
- 三种绘图工具:画笔(Pen)、荧光笔(Highlighter,10x 厚度 + 半透明效果)、橡皮擦(Eraser)
- 调色板:8 种预设颜色(黑色、红色、蓝色、绿色、橙色、紫色、黄色、白色)
- 画笔大小可调:1–20 像素滑块调节
- 自适应颜色:根据背景模式自动切换笔迹颜色(白底黑字、黑底白字、透明底红色)
- 背景模式:透明(Transparent)、白板(Whiteboard)、黑板(Blackboard)
- PowerPoint 幻灯片集成:
- 自动检测正在运行的幻灯片放映
- 上一页 / 下一页导航
- 幻灯片编号显示
- 基于 COM Interop 和 Win32 窗口枚举双模式检测
- 幻灯片笔迹管理:每页幻灯片独立记录和恢复笔迹,翻页自动保存
- 保存画布:导出为 PNG 到
Pictures/InkCanvasScreenshots/ - 清除画布:一键清除所有笔迹
- 双语界面:简体中文 / English 切换
- 现代化界面:Windows 11 Fluent Design 无边框全屏窗口
| 组件 | 技术 |
|---|---|
| 框架 | Avalonia 11.3.11 |
| 语言 | C# (.NET 10.0, 目标平台 net11.0-windows) |
| 架构模式 | MVVM (CommunityToolkit.Mvvm 8.2.1) |
| 主题 | FluentAvaloniaUI 2.5.0 |
| 绘图引擎 | DotNetCampus.AvaloniaInkCanvas 1.0.1 + SkiaSharp |
| Office 集成 | Microsoft.Office.Interop.PowerPoint 15.0.4420.1018 |
Ink-Canvas-Next/
├── Ink Canvas Next.slnx
├── Ink-Canvas-Next/
│ ├── Assets/
│ │ └── avalonia-logo.ico
│ ├── Converters/
│ │ └── UiLanguageDisplayConverter.cs
│ ├── Models/
│ │ ├── AdaptiveColors.cs
│ │ └── HighlighterSettings.cs
│ ├── Services/
│ │ ├── CanvasService.cs # 画布导出 PNG
│ │ ├── PowerPointService.cs # PPT 幻灯片监控与导航
│ │ └── SlideAnnotationManager.cs # 每页笔迹持久化
│ ├── ViewModels/
│ │ ├── ViewModelBase.cs
│ │ └── MainWindowViewModel.cs # 主 ViewModel
│ ├── Views/
│ │ ├── MainWindow.axaml # 主窗口 UI
│ │ └── MainWindow.axaml.cs
│ ├── App.axaml
│ ├── App.axaml.cs
│ ├── Program.cs
│ ├── ViewLocator.cs
│ ├── app.manifest
│ └── Ink-Canvas-Next.csproj
├── .github/workflows/
│ ├── build-and-release.yml
│ └── opencode.yml
├── .gitignore
├── LICENSE
├── README.md
└── TODO.md
- Windows 10 或更高版本(需要 PowerPoint COM 支持)
- .NET 10.0 SDK
- Microsoft PowerPoint(可选,用于幻灯片集成功能)
cd Ink-Canvas-Next
dotnet builddotnet run- 绘图:选择画笔或荧光笔工具,在画布上绘制
- 切换颜色:从调色板下拉菜单中选择颜色
- 调整大小:拖动滑块调整笔刷粗细(1–20px)
- 切换背景:点击 Transparent / White / Black 切换背景模式
- PPT 批注:启动 PowerPoint 幻灯片放映后,应用自动检测并显示导航控件,可在每页幻灯片上独立批注
- 保存:点击 Save 将当前画布导出为 PNG
- 清除:点击 Clear 清空所有笔迹
- 语言:通过语言下拉菜单在中英文之间切换
MIT