CodeWF.Avalonia 文档
dotnet9
CodeWF.Avalonia / 文档 / 窗口与演示

窗口与演示

⏱ 预计阅读 5 分钟 适用于 net10.0 来源: CodeWF · docs/NativeDemo.md ✎ 在 GitHub 编辑此页

# CodeWF.Avalonia 原生 Demo

当前版本 12.1.4.26。Demo 使用 Ribbon + Dock,以单个控件或公开 API 为导航单位:8 个分类、32 个页面。目录由 design/catalog.json 统一维护,它也是 Demo 的构建输入,不能在构建前删除。

窗口与演示

  • 每个演示是一个 Dock Document;内部使用 Grid + GridSplitter 放置内容和属性面板。分屏、浮动、重新停靠时使用 Dock 官方内容回收模板,保留同一份视图、参数和属性状态。
  • 文档组位于独立且不可折叠的中央比例容器内。文档分屏后再浮动,不会把导航区一起归一化;回归同时检查默认份额和手动调整后的份额及实际宽度。
  • 首屏聚焦真实功能、输入和结果,源码按需展开;介绍页提供全局设置,其他页面仅显示自身参数。
  • Ribbon 组只显示标题;主命令图标 32×32,快捷图标 16×16、点击热区 30×30。密集分组双行排列,窄窗口可以横向滚动。
  • 属性面板使用 Semi 图标,搜索独占下一行。名称列默认 118px、行高 31px;横竖分隔线支持拖动调整列宽和行高。文本、数值、下拉编辑器铺满值单元格,默认无边框;下拉文本左对齐。

外观与国际化

标题栏只保留一排八色点,不再重复放置配色下拉。配色包括 .NET 紫、AI 极光、AI 赤陶、默认蓝、水生、沙漠、黄昏和夜空。

模式直接复用 Ursa ThemeToggleButton,按系统 → 浅色 → 深色循环。按钮放在独立 ThemeVariantScope 中,通过 StudioThemeModeConverter 绑定原有模式;应用仍由 StudioThemeController 管理自定义配色和系统主题变化,按钮不会把配色重置成默认主题。

语言图标点击后展开语言列表,文本左对齐。列表来自宿主的语言集合,增加语言无需重写标题栏控件;当前 Demo 提供简体中文和英文。

全局只使用 CodeWF.Toolkit.Lang.I18nManager.Instance。库的 JSON 内嵌程序集,宿主的 JSON 输出到 I18n/,优先级为宿主输出 > 外层库 > 内层库;强类型键由 T4 生成。宿主正常加载资源后即可同键覆盖库文案,无需 resolver 或事件桥接。

验证与发布

powershell
pwsh scripts/sync_localization_keys.ps1 -Check
pwsh scripts/publish_avalonia_demo.ps1 -RuntimeIdentifier win-x64
# 本机并行开发可增加 -BuildArtifactsPath E:/github/temp/CodeWF.Avalonia-build

scripts/localization-verification 加载真实 App、XAML 和 Skia,在锁屏期间离屏运行;验证八色点、Ursa 内部按钮的实际点击、语言列表、1120/1440 宽度,以及 Dock 分屏 → 浮动 → 重新停靠。页面覆盖 1024 个页面/语言/配色组合。渲染数量只表示覆盖范围,不代表全页视觉还原率。

12.1.4.25 已重新执行正式 Windows x64 NativeAOT 发布和实际 EXE 自检,确认两语输出资源、32 条内嵌目录及独立数据目录。独立原生 UI 验证器实际通过 1024 组页面渲染、后台动态切语、宿主覆盖、属性编辑和 Dock 转移;原生配色审计覆盖 16 种配色/明暗组合、848 次对比测量,失败数为 0,包括真实通知窗口及标题栏通知计数。库级测试为 Content 302 项、Controls 94 项全部通过;单文件原型通过 128 组路由/语言/宽度检查及 832 次实际文字对比,5 份 T4 映射同步。现有 Windows 安装脚本已从正式产物编译,未执行安装器;该版使用旧安装器;12.1.4.26 开始应用已确认的 .NET 紫异形安装器,原生夹具和平台边界见 安装器说明。

2026-10-16 的 12.1.4.24 使用仓库脚本发布 Windows x64 NativeAOT,正式 EXE 检查两语资源和 32 条内嵌目录。独立 NativeAOT UI 验证器覆盖八色三态、动态语言菜单、Dock 分屏/浮动/重新停靠和 1024 组目录渲染。本轮增加隐藏属性分支、真实下拉框双向切语、后台语言通知、脑图宿主覆盖和只读 Markdown 表格宽窄窗回归;保留 Semi 复制/粘贴菜单、Ursa 回退及属性编辑器业务值同步检查。279 项控件测试、5 份 T4 映射及单文件原型的 128 组路由/语言/宽度审计通过。Windows 安装器构建与实际 EXE 执行分别留存证据,不把安装器编译当作人工安装。

正式 Demo 另提供 --verify-runtime <独立目录>:直接运行发布的 NativeAOT EXE,检查两种输出语言及全部 32 条内嵌目录,不启动窗口、不读取用户配置。Windows 发布流水线在制作安装器前执行该检查;它与加载真实控件的 UI 验证器分别验证正式产物与界面行为。

Windows 本机执行仓库发布脚本,再运行 NativeAOT 验证器并制作 EXE 安装包。发布工作流分别在对应平台生成 win-x64、linux-x64、linux-arm64、osx-x64、osx-arm64 的 EXE / DEB / DMG 和 SHA-256;不提供便携压缩包。

交付原型为 design/ 下自包含单 HTML,内嵌全部运行资源,可复制到空目录离线交互。审计实际点击全部路由、色点、三态按钮和语言菜单;窗口框架支持最小化、最大化、关闭与恢复。

README 的 PNG / GIF 已于 2026-10-16 更新为 12.1.4.24:普通页面从当前真实控件经 Skia 离屏采集,浮动与回停截图来自正式 NativeAOT UI 验证器。展开动画使用实际控件的 32 帧采样,主题巡览使用当前页面截图;不再展示旧版本的标题栏下拉框。

本轮仅将两张 Dock PNG 更新为 12.1.4.25 的最终原生捕获;其他媒体继续明确标注为 12.1.4.24,不把历史图片冒称为本轮结果。来源与哈希见 当前原生截图来源。

验收边界

浏览器原型不运行 .NET、原生窗口、网络后端或系统安装。字体度量、Dock 页签与窗口按钮受平台和第三方模板影响,页面非空和局部几何通过均不能视为达到 95% 全页还原。

本轮后台验证不会操作锁屏桌面。人工鼠标拖出、多 DPI、跨屏、输入法及安装器交互仍需在桌面可用时补充;Linux/macOS 的构建与安装结构由对应 CI 验证,本机没有运行它们的 UI。Demo 将传递 XAML Loader 固定到 Avalonia 12.1.4,避免混用 11.x 解析器。旧 Prism 8 的未使用 DialogWindow 路径仍有缺失绑定方法的 AOT 警告,Prism/DryIoc 等也有裁剪分析警告;保留原反射元数据配置,验证结果只覆盖实际调用路径。