Migrate codebase to Avalonia 12 APIs

Apply Avalonia 12 migration changes: replace SystemDecorations with WindowDecorations and remove ExtendClientAreaChromeHints/ExtendClientAreaTitleBarHeightHint usages; update BindingPlugins removal logic (no-op); switch clipboard usage to ClipboardExtensions.SetTextAsync; update Bitmap.CopyPixels calls to the new signature. Replace TextBox.Watermark with PlaceholderText, convert NumberBox styles to FANumberBox and adjust templates, change Checked/Unchecked handlers to IsCheckedChanged, and adapt FluentIcons usages (SymbolIconSource -> FASymbol/FAFont/FluentIcon equivalents). Fix MainWindow partial classes to inherit Window and correct missing variables/fields/usings. Add migration docs/specs/tasks under .trae and include a small TestFluentIcons project for icon testing.
This commit is contained in:
lincube
2026-04-29 08:50:28 +08:00
parent a73ba32700
commit 9fb41378eb
54 changed files with 468 additions and 170 deletions

View File

@@ -0,0 +1,39 @@
# Tasks
- [ ] Task 1: 修复窗口装饰 APIPhase 1
- [x] SubTask 1.1: 重写 `SettingsWindow.ApplyChromeMode()` 移除 `ExtendClientAreaChromeHints`
- [x] SubTask 1.2: 重写 `ComponentEditorWindow.ApplyChromeMode()` 移除 `ExtendClientAreaChromeHints`
- [x] SubTask 1.3: 批量替换所有 `.axaml` 中的 `SystemDecorations``WindowDecorations`
- [ ] SubTask 1.4: 验证构建错误减少
- [ ] Task 2: 修复 MainWindow 编译错误Phase 2
- [ ] SubTask 2.1: 修复 `MainWindow.ComponentSystem.cs``centerLeft``positions` 未定义错误
- [ ] SubTask 2.2: 修复 `MainWindow.DesktopPaging.cs``child``_isThreeFingerOrRightDragSwipeActive` 未定义错误
- [ ] SubTask 2.3: 验证构建错误减少
- [ ] Task 3: 修复 Avalonia 12 API 变更Phase 3
- [ ] SubTask 3.1: 移除 `App.axaml.cs``BindingPlugins.DataValidators` 代码
- [ ] SubTask 3.2: 替换 `DesktopComponentFailureView.cs``IClipboard.SetTextAsync``ClipboardExtensions.SetTextAsync`
- [ ] SubTask 3.3: 更新 `MonetColorService.cs``Bitmap.CopyPixels` 调用签名
- [ ] SubTask 3.4: 验证构建错误减少
- [ ] Task 4: 修复第三方库变更Phase 4
- [ ] SubTask 4.1: 替换 `SettingsWindow.axaml.cs``FluentIcons.Avalonia.SymbolIconSource``FluentIcon`
- [ ] SubTask 4.2: 验证构建错误减少
- [ ] Task 5: 清理过时属性Phase 5
- [ ] SubTask 5.1: 批量替换 `.cs` 文件中 `Watermark``PlaceholderText`
- [ ] SubTask 5.2: 批量替换 `.axaml` 文件中 `Watermark``PlaceholderText`
- [ ] SubTask 5.3: 验证无过时警告
- [ ] Task 6: 最终验证
- [ ] SubTask 6.1: `dotnet build LanMountainDesktop.slnx -c Debug` 0 errors
- [ ] SubTask 6.2: `dotnet test LanMountainDesktop.slnx -c Debug` 通过
# Task Dependencies
- Task 2 不依赖 Task 1可并行
- Task 3 不依赖 Task 1/2可并行
- Task 4 不依赖 Task 1/2/3可并行
- Task 5 依赖 Task 1/2/3/4低优先级最后执行
- Task 6 依赖所有前置任务