CodeWF.Avalonia.Controls 12.1.4.18

dotnet add package CodeWF.Avalonia.Controls --version 12.1.4.18
                    
NuGet\Install-Package CodeWF.Avalonia.Controls -Version 12.1.4.18
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="CodeWF.Avalonia.Controls" Version="12.1.4.18" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="CodeWF.Avalonia.Controls" Version="12.1.4.18" />
                    
Directory.Packages.props
<PackageReference Include="CodeWF.Avalonia.Controls" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add CodeWF.Avalonia.Controls --version 12.1.4.18
                    
#r "nuget: CodeWF.Avalonia.Controls, 12.1.4.18"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package CodeWF.Avalonia.Controls@12.1.4.18
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=CodeWF.Avalonia.Controls&version=12.1.4.18
                    
Install as a Cake Addin
#tool nuget:?package=CodeWF.Avalonia.Controls&version=12.1.4.18
                    
Install as a Cake Tool

CodeWF.Avalonia

CI NuGet License Target

面向 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。

资源分发按角色区分:NuGet 库把 JSON 嵌入程序集,自行读取默认文案;Demo 和桌面应用将自己的 JSON 输出到 I18n/,沿用已有语言初始化。应用可选添加同名资源键定制库文案,覆盖与缺键回退由 Lang 引擎处理,无需逐库注册、合并 JSON 或提供 resolver。C# 强类型资源键使用 T4 或 CodeWF.Avalonia.Lang.Generator,不手写维护映射;Demo 的 T4 映射由 pwsh scripts/sync_localization_keys.ps1 更新,CI 使用 -Check 校验。

包 说明 依赖
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.MindView 脑图编辑、缩略图、导入导出、只读 Markdown 结构图,内含浅深色主题与主题色 API Avalonia、Markdig、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 控件则必须引入(后者包含前者)

八套常规配色 × 三态模式:在 Semi 与控件样式之后加载 <codewf:StudioTheme />,由 CodeWF.Avalonia.Controls.Themes.StudioThemeController 统一管理。

配色 StudioPalette
.NET 紫 DotNet
AI 极光 / AI 赤陶 Aurora / Ember
默认蓝 Default
水生 / 沙漠 / 黄昏 / 夜空 Aquatic / Desert / Dusk / NightSky

每套配色均有独立浅色和深色资源。模式使用 StudioThemeMode.System/Light/Dark;跟随系统会订阅平台主题变化,固定模式保持用户选择。应用退出时释放控制器。

using CodeWF.Avalonia.Controls.Themes;

// 由应用持有,退出时调用 Dispose()。
_themeController = new StudioThemeController(Application.Current!)
{
    Palette = StudioPalette.DotNet,
    Mode = StudioThemeMode.System,
};

现有 SemiTheme.Aquatic/Desert/Dusk/NightSky 和日志的 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 嵌入 Markdown.Lite 程序集,默认自动读取并跟随 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 约定与截图检查见 原生演示台文档。

文档内使用 Grid + GridSplitter 放置演示与独立属性面板,浮动时整体移动。命令区进一步按状态、引导、表格、窗口、布局动效、Markdown 阅读 / 编辑 / 导出等用途分组。参数与演示优先展示,源码按需打开;长 API 名保持完整,窄窗口可横向滚动。仓库通过 global.json 选择稳定版 .NET 10 SDK。

Ribbon 功能子组与原生 Dock 工作区

Each Dock document contains its demonstration and property panel; both move together when detached. See the linked guide for optional Studio themes, localization and validation.

Windows x64 NativeAOT Demo:标题栏支持主题色圈与下拉同步切换,默认 .NET 紫,共八套配色;浅色、深色与跟随系统分别选择。首页目录包含 32 个页面,实验区按需展开;完整功能与验收范围见上面的文档。

快捷入口采用 16×16 图标与 30×30 点击热区,Ribbon 主命令使用 32×32 图标。每个文档内的演示和属性面板通过 GridSplitter 调整宽度,属性默认行高 31px、名称列宽 118px;下列图片来自 12.1.4.18 的 Windows x64 NativeAOT 程序。

.NET 紫色原生演示台

AI 极光浅色原生演示台

StatusCard 独立演示

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 通过。

思维导图接入

CodeWF.Avalonia.MindView 的控件和主题合并为一个包,版本随本仓统一版本。宿主可使用 Semi、Ursa 或其它 Avalonia 主题。编辑型脑图使用 MindMapEditor / MindMapMiniMap,只读 Markdown 导图使用 MarkdownMindMapView。详细 API 和接入例子见 MindView README。

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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.18 0 10/15/2026
12.1.4.17 0 10/15/2026
12.1.4.16 0 10/14/2026
12.1.4.15 0 10/14/2026
12.1.4.14 0 10/14/2026
12.1.4.13 0 10/14/2026
12.1.4.12 5 10/14/2026
12.1.4.11 30 10/14/2026
12.1.4.10 30 10/14/2026
12.1.4.9 35 10/14/2026
12.1.4.8 44 10/13/2026
12.1.4.7 113 10/13/2026
12.1.4.5 81 10/13/2026
12.1.4.4 67 10/13/2026
12.1.4.3 97 10/12/2026
12.1.4.2 77 10/12/2026
12.1.4.1 185 10/10/2026
12.1.4 91 10/10/2026
12.1.4-preview.3 57 10/10/2026
12.1.4-preview.2 52 10/10/2026
Loading failed