CodeWF.Avalonia.Controls
12.1.4.11
See the version list below for details.
dotnet add package CodeWF.Avalonia.Controls --version 12.1.4.11
NuGet\Install-Package CodeWF.Avalonia.Controls -Version 12.1.4.11
<PackageReference Include="CodeWF.Avalonia.Controls" Version="12.1.4.11" />
<PackageVersion Include="CodeWF.Avalonia.Controls" Version="12.1.4.11" />
<PackageReference Include="CodeWF.Avalonia.Controls" />
paket add CodeWF.Avalonia.Controls --version 12.1.4.11
#r "nuget: CodeWF.Avalonia.Controls, 12.1.4.11"
#:package CodeWF.Avalonia.Controls@12.1.4.11
#addin nuget:?package=CodeWF.Avalonia.Controls&version=12.1.4.11
#tool nuget:?package=CodeWF.Avalonia.Controls&version=12.1.4.11
CodeWF.Avalonia
面向 Avalonia 12 的 UI 控件与能力库合集:基础自定义控件、表格增强、Dock 布局、Markdown 渲染与编辑、国际化、日志查看,均以 CodeWF.Avalonia.* 前缀发布,XAML 命名空间统一挂 https://codewf.com。
A suite of UI control and capability libraries for Avalonia 12, published with the CodeWF.Avalonia.* prefix and a unified XAML namespace https://codewf.com.
版本号前三位跟随 Avalonia(当前 12.1.4),第四位为本仓修订号。
这个仓库解决什么 / What it solves
| 场景 | 用到的包 |
|---|---|
| 桌面应用外壳:统一标题栏、新手引导、状态徽标/卡片、穿梭框与可搜索列表 | CodeWF.Avalonia.Controls |
| 数据表格:三态排序(升/降/取消)、自然排序、截断 ToolTip;树形表格同款,另附通用属性面板 | CodeWF.Avalonia.DataGrid、CodeWF.Avalonia.TreeDataGrid |
| 多文档工作区:Dock 布局适配、梯形文档页签、中英文本地化 | CodeWF.Avalonia.Dock |
| Markdown 写作与发布:渲染、图片/公式/Mermaid/代码高亮、PNG/PDF/Word/公众号 HTML 导出、源码与所见即所得编辑器 | CodeWF.Avalonia.Markdown.Lite、CodeWF.Avalonia.Markdown |
| 运行期观测与本地化:实时日志查看、桌面通知、I18n 标记扩展与强类型 Key 生成 | CodeWF.Avalonia.Log、CodeWF.Avalonia.Lang、CodeWF.Avalonia.Lang.Generator |
包一览 / Packages
「依赖」列只列第三方与本仓包依赖;所有包均面向 net10.0(Lang.Generator 为 netstandard2.0)。只有 4 个包直接依赖 Semi.Avalonia。
从 12.1.4.11 起,国际化的 JSON/XML/RESX 解析、文化回退与全局状态由 NuGet 包 CodeWF.Toolkit.Lang 提供,无需获取另一个仓库源码。CodeWF.Avalonia.Lang 保留 XAML 绑定和旧接口兼容层,两种命名空间的管理器共用同一状态;已有应用可继续使用原来的插件、自定义 ILangPlugin 和语言下拉框类型。控制台、服务及基础库直接安装 CodeWF.Toolkit.Lang,无需引入 Avalonia。
| 包 | 说明 | 依赖 |
|---|---|---|
| CodeWF.Avalonia.Controls | 基础自定义控件 + Semi 主题:Guide 引导、Transfer/SearchListBox、StatusBadge/StatusCard、CodeWFWindow/标题栏、WindowedStackPanel、梯形页签、If/Switch 标记扩展与转换器 | Avalonia、Semi.Avalonia、CodeWF.Avalonia.Lang |
| CodeWF.Avalonia.DataGrid | 官方 DataGrid 增强:三态排序、自然排序、智能 ToolTip,内置 Semi 主题入口 | Avalonia.Controls.DataGrid、Semi.Avalonia |
| CodeWF.Avalonia.TreeDataGrid | 社区版 TreeDataGrid.Avalonia 增强:三态排序、Ctrl+A 全选、智能 ToolTip,内置 Semi 主题(本地 vendor,不依赖商业版);含通用 PropertyGrid | TreeDataGrid.Avalonia、Avalonia.Controls.ColorPicker、Semi.Avalonia、CodeWF.Avalonia.Lang |
| CodeWF.Avalonia.Dock | 基于 Dock.Avalonia 的布局扩展与 Semi 风格主题,含中英文本地化 | Dock.Avalonia、Dock.Avalonia.Themes.Simple、Semi.Avalonia |
| CodeWF.Avalonia.Markdown.Lite | Markdown 渲染引擎(常规元素)+ 18 套排版主题 | Avalonia、Markdig、CodeWF.Avalonia.Controls*、CodeWF.Avalonia.Lang* |
| CodeWF.Avalonia.Markdown | 完整包:图片/公式/Mermaid/代码高亮/多格式导出/源码与所见即所得编辑器 | Avalonia.AvaloniaEdit、AnimatedImage.Avalonia、Mermaider、SkiaSharp、Svg.Skia、Svg.Controls.Skia.Avalonia、Sylinko.CSharpMath.Avalonia、TextMateSharp(.Grammars)、CodeWF.Avalonia.Markdown.Lite、CodeWF.Avalonia.Controls*、CodeWF.Avalonia.Lang* |
| CodeWF.Avalonia.Log | 日志查看控件与桌面通知(配合 CodeWF.Toolkit.Logging) | Avalonia、Xaml.Behaviors、CodeWF.Toolkit.Logging |
| CodeWF.Avalonia.Lang | I18n 标记扩展、转换器与兼容接口;Json/Xml/Resx 解析使用共享 BCL 引擎 | Avalonia、CodeWF.Toolkit.Lang |
| CodeWF.Avalonia.Lang.Generator | 编译期源生成器:从语言资源生成强类型 Key | Roslyn(PrivateAssets=all,netstandard2.0) |
* 标注的依赖由对应包经传递引用带入,无需单独安装;它们本身不依赖 Semi,见 主题与依赖。
快速开始 / Quick start
# 最小可用:控件 + 官方 DataGrid 增强
dotnet add package CodeWF.Avalonia.Controls
dotnet add package CodeWF.Avalonia.DataGrid
App.axaml(注意 xmlns:semi,缺少它 <semi:SemiTheme/> 无法解析):
<Application xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:semi="https://irihi.tech/semi"
xmlns:codewf="https://codewf.com">
<Application.Styles>
<semi:SemiTheme Locale="zh-CN" />
<codewf:ACSemiTheme />
<codewf:DataGridSemiTheme />
</Application.Styles>
</Application>
上面三行按需增删即可,下面是几种常见的最小组合:
| 你只需要 | Application.Styles 里放什么 |
|---|---|
| Markdown 渲染(Lite,不引入 Semi) | <codewf:MarkdownThemes /> |
| Markdown 完整能力(编辑器/导出/图表) | <codewf:MarkdownFullThemes />(继承自 Lite 的 MarkdownThemes) |
| 日志查看控件 | <codewf:CodeWFLogTheme /> + 先初始化 CodeWF.Toolkit.Logging 的 Logger |
| 树形表格 + 属性面板 | <semi:SemiTheme />、<codewf:TreeDataGridSemiTheme /> |
| Dock 多文档工作区 | <semi:SemiTheme />、<codewf:DockSemiTheme /> |
| 仅国际化 | 不需要任何主题入口,初始化 I18nManager 即可 |
主题与依赖 / Themes and dependencies
六个主题入口分别属于哪个包、是否依赖 Semi、能否省略:
| 主题入口 | 所属包 | 依赖 Semi | 可否省略 |
|---|---|---|---|
ACSemiTheme |
Controls | 是 | 用了 Guide/Transfer/StatusBadge/CodeWFWindow 等控件则必须引入 |
DataGridSemiTheme |
DataGrid | 是 | 用了 EnableDefaults() 增强或需要 Semi 风格表头则必须引入 |
TreeDataGridSemiTheme |
TreeDataGrid | 是 | 用了 TreeDataGrid 增强或 PropertyGrid 则必须引入 |
DockSemiTheme |
Dock | 是 | 用了 Dock 布局则必须引入 |
CodeWFLogTheme |
Log | 否 | 只在不使用日志查看控件时可省 |
MarkdownThemes / MarkdownFullThemes |
Markdown.Lite / Markdown | 否 | 用了 Markdown 控件则必须引入(后者包含前者) |
6 套色板与 RequestedThemeVariant 的对应关系(演示应用还提供三套 Studio 配色,见下文):
| 色板 | 取值 |
|---|---|
| Default | ThemeVariant.Light / ThemeVariant.Dark |
| Aquatic、Desert、Dusk、NightSky | SemiTheme.Aquatic / .Desert / .Dusk / .NightSky(Semi 提供的固定深色变体,不随浅深切换) |
| HighContrast | CodeWFLogTheme.HighContrast(深色高对比,供日志控件使用) |
运行时切换只需给 Application.Current.RequestedThemeVariant 赋值:
Application.Current!.RequestedThemeVariant = ThemeVariant.Dark; // Default 色板 · 深色
Application.Current!.RequestedThemeVariant = SemiTheme.Aquatic; // 水生
Application.Current!.RequestedThemeVariant = CodeWFLogTheme.HighContrast; // 高对比
改色时的两个事实
CodeWFLogTheme是sealed:它只能整体引入,不支持继承后覆盖配色。若需要自定义日志配色,请在应用资源里覆盖同名画笔键(Application.Resources的优先级高于主题)。MarkdownThemes可以继承:它是 public 无参构造的Styles,MarkdownFullThemes就是这么来的;排版主题/尺寸也支持运行时切换:
public class MyMarkdownThemes : MarkdownThemes
{
public MyMarkdownThemes()
{
TypographyTheme = MarkdownTypographyThemes.TechnologyBlue; // 默认 Basic
TypographySize = MarkdownTypographySizes.Small; // 默认 Normal
}
}
<codewf:MarkdownThemes TypographyTheme="TechnologyBlue" TypographySize="Small" />
排版主题共 18 套,Key 见 MarkdownTypographyThemes(Basic 为默认),尺寸见 MarkdownTypographySizes。
全局/局部切换还可调用 MarkdownThemes.OverrideTypographyResources(...),无需重建控件。
注意:主题资源以程序集内绝对 URI(
avares://CodeWF.Avalonia.*/Themes/...)引用,不要手动改写资源字典路径。
需要宿主自备的主题 / Host-provided theming
| 情形 | 宿主需要做什么 |
|---|---|
| Dock | DockSemiTheme 以 Dock 官方的 Dock.Avalonia.Themes.Simple 为基座,并自带 {x:Type Button} / {x:Type Window} 基类主题(Semi.Avalonia 12.x 不再提供这两个基类主题),因此不需要再引入 FluentTheme;但 Semi 基础主题仍需引入。保留开源主题的原因与 Semi.Avalonia.Dock 的依赖、许可区别见 Dock 文档。 |
| AvaloniaEdit(Markdown 完整包) | 编辑器需要宿主提供字体令牌(FontSizeNormal 等,通常来自所引用的主题包)。缺少时编辑器字号会回退到默认值,不影响功能。 |
| Markdown 语言资源 | 语言 JSON 随包分发到输出目录 I18n/CodeWF.Markdown/,用 CodeWF.Avalonia.Lang 的 Json 加载器指向该目录即可完成本地化。 |
| 日志控件 | 需先初始化 CodeWF.Toolkit.Logging 的 Logger,控件订阅其 UI 日志事件流;回调在后台线程,界面订阅方自行调度到 UI 线程。 |
包 → 源码 → 文档索引 / Source & docs index
| 包 | 源码 | 文档 |
|---|---|---|
| Controls | src/Controls | 说明文档 |
| DataGrid | src/DataGrid | 说明文档 |
| TreeDataGrid(含 PropertyGrid) | src/TreeDataGrid | 说明文档 |
| Dock | src/Dock | 说明文档 |
| Markdown / Markdown.Lite | src/Markdown | 说明文档 |
| Log | src/Log | 说明文档 |
| Lang / Lang.Generator | src/Lang | 说明文档 |
演示应用 / Demo
Demo 保留 Ribbon + Dock,按输入与选择、反馈与引导、数据展示、布局与导航、Markdown、开发工具分类;每个主菜单对应一个具体控件或 API。首页先展示目录,组合工作流集中到“综合示例”。新增展开动画独立页,块编辑、平面表格增强与状态卡片提供具体用例。共享主题接口、MVVM 约定与截图检查见 原生演示台文档。
命令区进一步按状态、引导、表格、窗口、布局动效、Markdown 阅读 / 编辑 / 导出等用途分组。参数与演示优先展示,源码按需打开;长 API 名保持完整,窄窗口可横向滚动。仓库通过 global.json 选择稳定版 .NET 10 SDK。

The native overview offers live Markdown, natural sorting and Dock experiments. See the linked guide for optional Studio themes, localization and validation.
Windows x64 NativeAOT Demo:标题栏支持主题色圈与下拉同步切换,默认 .NET 紫,也提供 AI 极光与暖陶的深浅主题。首页目录包含 32 个页面,实验区按需展开;完整功能与验收范围见上面的文档。







# 桌面演示台:Ribbon 页签 + Dock 工作区(左导航 / 中文档 / 右属性面板 / 下日志),含 .NET 紫、AI 极光、AI 暖陶与原有六套 Semi 配色,支持深浅与双语切换
dotnet run --project demo/CodeWF.Avalonia.Demo -f net10.0
# 冒烟模式:逐页构建后逐色板渲染一遍再退出,退出码 0 表示全部页面构建 + 渲染通过(CI 使用)
dotnet run --project demo/CodeWF.Avalonia.Demo -f net10.0 -- --smoke
安装包由 GitHub Releases 提供(随 v* tag 构建):Windows setup.exe / 便携 zip、Linux deb、macOS dmg,均附 .sha256 校验文件。
CI/CD 与版本策略 / CI and versioning
ci.yml:dotnet build -c Release+dotnet test,外加 NativeAOT 发布并在 Windows 上运行--smoke。publish-nuget.yml:推送v*tag 时打包并发布 NuGet(Trusted Publishing)。release.yml:同一 tag 触发全平台演示应用发布(6 个 RID:win-x64/x86、linux-x64/arm64、osx-x64/arm64)。- 版本号前三跟随 Avalonia,第四位为本仓修订,例如
v12.1.4.4。 - 变更记录见 UpdateLog.md。
许可与贡献 / License and contributing
MIT。Issue 与 PR 都欢迎,提交前请确保 dotnet build CodeWF.Avalonia.slnx -c Release 与 dotnet test 通过。
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Avalonia (>= 12.1.4)
- CodeWF.Avalonia.Lang (>= 12.1.4.11)
- CodeWF.Toolkit.Lang (>= 1.0.0.13)
- Semi.Avalonia (>= 12.1.0.1)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on CodeWF.Avalonia.Controls:
| Package | Downloads |
|---|---|
|
CodeWF.Avalonia.Markdown.Lite
Markdown 渲染基础包:基于 Avalonia 与 Markdig 的解析渲染引擎,只渲染常规元素(标题/段落/列表/引用/表格/链接/代码块单色/图片替代文本/公式原文),并内置 18 套排版主题。Markdown rendering engine with built-in typography themes, no heavy capability dependencies. |
|
|
CodeWF.Avalonia.Markdown
Markdown 完整包:在 Lite 渲染引擎之上提供图片(GIF/SVG/预览)、数学公式、Mermaid 图表、TextMate 代码高亮、PNG/PDF/Word/公众号 HTML 导出,以及源码编辑器与单栏实时编辑(所见即所得)控件,并内置能力控件主题。Full Markdown package: images, math, mermaid, highlighting, export and editors on top of the Lite engine. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 12.1.4.27 | 27 | 10/16/2026 |
| 12.1.4.26 | 36 | 10/16/2026 |
| 12.1.4.25 | 234 | 10/16/2026 |
| 12.1.4.24 | 84 | 10/15/2026 |
| 12.1.4.23 | 59 | 10/15/2026 |
| 12.1.4.22 | 328 | 10/15/2026 |
| 12.1.4.21 | 48 | 10/15/2026 |
| 12.1.4.20 | 155 | 10/15/2026 |
| 12.1.4.19 | 59 | 10/15/2026 |
| 12.1.4.18 | 73 | 10/15/2026 |
| 12.1.4.17 | 44 | 10/15/2026 |
| 12.1.4.16 | 47 | 10/14/2026 |
| 12.1.4.15 | 46 | 10/14/2026 |
| 12.1.4.14 | 82 | 10/14/2026 |
| 12.1.4.13 | 61 | 10/14/2026 |
| 12.1.4.12 | 53 | 10/14/2026 |
| 12.1.4.11 | 50 | 10/14/2026 |
| 12.1.4.10 | 48 | 10/14/2026 |
| 12.1.4.9 | 54 | 10/14/2026 |
| 12.1.4.8 | 63 | 10/13/2026 |