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,29 @@
using System;
using System.Linq;
using FluentAvalonia.UI.Controls;
class Test
{
static void Main()
{
var faSymbols = new System.Collections.Generic.HashSet<string>(Enum.GetNames(typeof(FASymbol)));
// 从错误信息中提取的图标名称
var usedIcons = new[]
{
"Info", "Color", "Apps", "Code", "Home", "Settings",
"WeatherMoon", "Search", "Location", "City", "Warning",
"ShieldDismiss", "Shield", "Announcements", "Package",
"StatusCircle", "Book", "BranchFork", "ArrowSync",
"GlobeArrowForward", "Options", "Store", "Layer",
"FolderOpen", "Clock", "Maximize"
};
Console.WriteLine("Checking icon availability in FASymbol:");
foreach (var icon in usedIcons.Distinct().OrderBy(i => i))
{
bool exists = faSymbols.Contains(icon);
Console.WriteLine($" {icon}: {(exists ? "OK" : "MISSING")}");
}
}
}