CodeWF.Avalonia.TreeDataGrid
12.1.4.7
See the version list below for details.
dotnet add package CodeWF.Avalonia.TreeDataGrid --version 12.1.4.7
NuGet\Install-Package CodeWF.Avalonia.TreeDataGrid -Version 12.1.4.7
<PackageReference Include="CodeWF.Avalonia.TreeDataGrid" Version="12.1.4.7" />
<PackageVersion Include="CodeWF.Avalonia.TreeDataGrid" Version="12.1.4.7" />
<PackageReference Include="CodeWF.Avalonia.TreeDataGrid" />
paket add CodeWF.Avalonia.TreeDataGrid --version 12.1.4.7
#r "nuget: CodeWF.Avalonia.TreeDataGrid, 12.1.4.7"
#:package CodeWF.Avalonia.TreeDataGrid@12.1.4.7
#addin nuget:?package=CodeWF.Avalonia.TreeDataGrid&version=12.1.4.7
#tool nuget:?package=CodeWF.Avalonia.TreeDataGrid&version=12.1.4.7
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。
| 包 | 说明 | 依赖 |
|---|---|---|
| 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 加载器 | Avalonia |
| 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 基础主题仍需引入。 |
| 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
新版原生首页可直接操作 Markdown、自然排序表格和 Dock,并通过能力卡片进入完整演示。共享主题接口、MVVM 约定与截图检查见 原生演示台文档。
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 极光与暖陶的深浅主题。首页直接使用库内 Markdown 编辑器与渲染器;完整功能与验收范围见上面的文档。




# 桌面演示台: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)
- Avalonia.Controls.ColorPicker (>= 12.1.4)
- CodeWF.Avalonia.Lang (>= 12.1.4.7)
- Semi.Avalonia (>= 12.1.0.1)
- TreeDataGrid.Avalonia (>= 12.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 12.1.4.21 | 0 | 10/15/2026 |
| 12.1.4.20 | 0 | 10/15/2026 |
| 12.1.4.19 | 0 | 10/15/2026 |
| 12.1.4.18 | 0 | 10/15/2026 |
| 12.1.4.17 | 0 | 10/15/2026 |
| 12.1.4.16 | 28 | 10/14/2026 |
| 12.1.4.15 | 31 | 10/14/2026 |
| 12.1.4.14 | 51 | 10/14/2026 |
| 12.1.4.13 | 47 | 10/14/2026 |
| 12.1.4.12 | 40 | 10/14/2026 |
| 12.1.4.11 | 36 | 10/14/2026 |
| 12.1.4.10 | 34 | 10/14/2026 |
| 12.1.4.9 | 37 | 10/14/2026 |
| 12.1.4.8 | 35 | 10/13/2026 |
| 12.1.4.7 | 93 | 10/13/2026 |
| 12.1.4.5 | 54 | 10/13/2026 |
| 12.1.4.4 | 40 | 10/13/2026 |
| 12.1.4.3 | 69 | 10/12/2026 |
| 12.1.4.2 | 47 | 10/12/2026 |
| 12.1.4.1 | 54 | 10/10/2026 |