枝见 Zhijian:一个用 Avalonia 做的 Markdown 脑图编辑器

今天继续打磨本地桌面脑图编辑器 「枝见 Zhijian」

枝见是一个基于 「C# + Avalonia」的 Markdown-first 脑图编辑器。它不是一个复杂项目管理系统,而是围绕写提纲、梳理功能设计、整理文章结构这些高频场景,把大纲、Markdown 和脑图三种视角绑定到同一棵树上。

项目仓库:
https://github.com/dotnet9/Zhijian。

本轮截图和 GIF 已按当前界面重新制作,并使用程序启动时默认加载的使用手册,重点展示文件列表、小图、缩放、画布拖拽和层级调整。

打开就是使用手册

新版本启动后会默认加载随程序输出的 使用手册.md。这份文档本身就是一棵多层级脑图,首屏可以直接看到文件列表、大纲和脑图的联动效果;用户需要从零开始时,仍然可以通过“新建”创建只有中心主题的空白脑图。

脑图二级节点也不再是单调灰色。新建或导入后,二级节点会使用更醒目的自动强调色;备注文字使用灰色前景和略大的字号,与标题区分,但不再额外加背景块,视觉负担更低。

文件菜单补齐成产品工作流

标题栏“文件”菜单现在不只是导入导出入口,而是完整文件工作流。macOS 下菜单快捷键会显示并响应 ,Windows/Linux 继续使用Ctrl,避免 Mac 用户看到一组不符合系统习惯的快捷键。

标题栏菜单继续按真实工作流整理

菜单现在不再只放“文件”和“关于”。标题栏已经整理为文件、编辑、主题、语言、帮助、关于几组入口,菜单项带图标,常用操作显示快捷键。

“编辑”菜单放撤销、重做、添加同级、添加子级、提升、降级、上移、下移、删除,以及“复制为 Markdown”。复制后会写入系统剪贴板,并使用桌面全局消息提示。

主题不再使用标题栏 ToggleSwitch,而是单独放到“主题”菜单里,后续扩展更多主题会更自然。语言菜单使用 Lang.Avalonia.Json,当前提供中文简体、中文繁体、英语和日语资源。

“帮助”菜单提供问题反馈、提交需求、提交 PR 和 GitHub 仓库入口;“关于”菜单继续提供网站、更新日志、感谢和关于窗口。

首次启动新手引导这次重新梳理过:文件步骤直接高亮标题栏文件菜单,不再笼统罩住左侧面板;后续步骤再依次指向大纲编辑区、Markdown 切换、脑图画布、小图预览、缩放和状态栏导航。引导里提供“跳过”按钮,刚打开软件的人可以随时结束引导。

是否显示引导、默认语言、最近文件数量、历史步数,以及 recent-files.jsonnew-user-tour.seen这些运行状态文件名,都集中放在src/Zhijian/App.config。运行时由ApplicationSettings读取 .NET 编译后的Zhijian.dll.config,配置损坏时回退到默认值,不影响启动。

打开单个文件后,左侧“文件”Tab 会列出这个文件,方便后续切换;打开文件夹后则列出目录里的 Markdown、OPML、XMind 文档。选择文件后会自动切回“大纲”,展示当前脑图结构。

关闭或切换文件前如果存在未保存修改,会弹出保存提示。最近文件记录保存在程序目录,避免每次重新定位常用文档。

大纲和脑图都要顺手

大纲视图和脑图视图共享同一个 MindMapNode树,所以在任意一侧编辑标题、备注、父子关系,另一侧都会同步刷新。

常用结构操作补到了两个视图的菜单里:

键盘创建节点的路径也重新走了一遍:Enter添加同级,TabShift+Tab调整层级,焦点会落回新节点输入框。

大纲圆点菜单和拖拽共用同一个入口,短按打开菜单,移动超过阈值后才进入拖拽,这样菜单和拖拽不会互相抢事件。

备注输入也做了细节处理:只有节点已有备注,或者用户明确选择“备注”时才显示备注输入框;空备注失焦后会自动收起。脑图节点里备注与标题已经按同一文本对齐方式绘制,短文本节点也能重新点回去继续输入。

脑图节点获得焦点后会显示悬浮工具条,可以直接添加备注或删除节点。

脑图侧也支持拖拽调整父子层级,拖到节点中部成为子节点,拖到上下边缘调整同级顺序。

小图、缩放和画布拖拽

脑图面积变大后,用户最需要的是“我现在看的是整张图的哪一块”。小图现在基于真实节点坐标和当前视口绘制,不是固定示意图;点击小图可以定位到对应区域。

缩放、中心主题定位、画布拖拽也都在实际窗口里重新验证过。

中间分隔条的拖拽调整宽度也已经改为明确的 GridSplitter行为并通过截图验证,只是这类动图对阅读帮助不大,文档里不再把它作为重点演示。

关于、更新日志和感谢

标题栏“关于”菜单包含:

枝见感谢这些优秀的开源平台和项目:

新应用怎么复用 CodeWF.MindView

如果你想在自己的 Avalonia 应用里复用脑图能力,优先引用 CodeWF.MindView,不要直接复制整个枝见应用。

CodeWF.MindView当前包含:

新应用可以引用控件库和主题库:

ounter(lineounter(lineounter(lineounter(line    ItemGroup>

App.axaml注册主题:

ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line    xmlns="https://github.com/avaloniaui"    xmlns:mindThemes="using:CodeWF.MindView.Themes">                Application.Styles>Application>

页面里直接放脑图控件。普通接入只需要绑定节点集合和当前选择:

ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line    xmlns="https://github.com/avaloniaui"    xmlns:mind="https://codewf.com">            Roots="{Binding Roots}"        SelectedNode="{Binding SelectedNode, Mode=TwoWay}" />UserControl>

宿主 ViewModel 提供 ObservableCollection就能跑起来。控件库负责显示、编辑、拖拽预览、小图和基础节点操作;应用如果要管理自己的文档状态、撤销历史、文件菜单和业务规则,再实现IMindMapEditorController并绑定Controller

如果你的应用也需要类似枝见的大纲视图、文件菜单、标题栏和 Markdown 面板,可以参考 src/Zhijian。其中OutlineEditor和桌面窗口属于应用层代码;CodeWF.MindView则保持 Avalonia-only,方便其他项目复用。

仓库与发布

本轮验证

这轮不只是改完代码看一眼编译。我重新生成了文档截图/GIF,并用默认加载的使用手册覆盖这些操作:

最终构建命令:

ounter(linedotnet build Zhijian.slnx

构建结果为 0 警告、0 错误。

对我来说,枝见最重要的不是堆功能,而是每个高频操作都顺手:打开就是空白文档、菜单项能直接命中真实需求、节点创建后焦点在正确位置、备注不抢视觉、缩放和小图能帮用户重新找到方向。这些细节做好了,用户才愿意一直用它整理结构。

展开阅读全文

更新时间:2026-05-20

标签:数码   编辑器   节点   文件   菜单   备注   大纲   主题   缩放   编辑   快捷键   操作

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight All Rights Reserved.
Powered By 61893.com 闽ICP备11008920号
闽公网安备35020302034903号

Top