全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Avalonia如何实现一个可停靠的布局 Avalonia Docking控件

Avalonia 本身不内置 Docking 功能,需通过第三方库 Avalonia.Dock 实现专业停靠界面;它支持拖拽、标签页、布局序列化,模仿 Visual Studio 布局体验,是当前最成熟稳定的方案。

Avalonia 本身不内置 Docking(停靠)功能,但可以通过第三方库 Avalonia.Dock 实现专业、可拖拽、可停靠、支持标签页和布局序列化的多窗格界面。它模仿 Visual Studio 或 Rider 的布局体验,是目前 Avalonia 生态中最成熟稳定的停靠方案。

安装 Avalonia.Dock

在项目中通过 NuGet 安装核心包:

  • Avalonia.Dock:核心控件与布局逻辑
  • Avalonia.Dock.Controls(可选):提供预置的工具栏、标题栏等 UI 组件
  • Avalonia.Xaml.Behaviors(如需行为绑定,推荐搭配使用)

安装后,在 XAML 中添加命名空间引用:

基础停靠布局结构

核心是 DockManager + LayoutRoot + LayoutPanel + LayoutDocumentPane / LayoutAnchorablePane。典型结构如下:

  • DockManager 是根容器,管理整个停靠系统状态
  • LayoutRoot 是唯一子元素,代表当前布局拓扑
  • LayoutPanel 表示一个可分割的区域(水平/垂直),内部可嵌套其他 Panel 或 Pane
  • LayoutDocumentPane 用于承载「文档式」内容(如编辑器标签页),支持关闭、最大化、新建标签
  • LayoutAnchorablePane 用于承载「工具窗口式」内容(如属性面板、解决方案资源管理器),可浮动、自动隐藏、停靠到边缘

定义可停靠内容(Anchorable)

每个可停靠窗口需封装为 LayoutAnchorable,并设置 TitleIconCanFloatCanAutoHide 等属性:


  

注意:LayoutAnchorable 必须放在 LayoutAnchorablePane 内,或由 DockManager 动态添加(例如通过菜单命令打开)。

保存与恢复布局

调用 DockManager.Save() 可序列化当前布局为 XML 字符串;DockManager.Load(xml) 可还原。建议在应用退出前保存到本地文件,启动时尝试加载:

  • 保存路径推荐使用 AppData 目录下的 JSON/XML 文件
  • 首次运行无配置时,可预设默认布局(如左窗格放资源树、右窗格放属性、中央放编辑器)
  • 注意处理 LayoutContent 类型反序列化失败问题——确保所有自定义视图类型已注册或可通过默认构造函数实例化


# js  # git  # json  # github  # app  # 工具  # 资源管理器  # win  # 命名空间  # 封装  # 构造函数  # xml  # 字符串  # Property  # visual studio  # https  # ui  # 序列化  # 窗格  # 第三方  # 编辑器  # 拖拽  # 最成熟  # 放在  # 首次  # 推荐使用  # 可以通过 


相关文章: 建站之星如何修改网站生成路径?  行程制作网站有哪些,第三方机票电子行程单怎么开?  网站建设制作、微信公众号,公明人民医院怎么在网上预约?  C#如何序列化对象为XML XmlSerializer用法  html制作网站的步骤有哪些,iapp如何添加网页?  如何高效完成自助建站业务培训?  广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?  如何基于云服务器快速搭建网站及云盘系统?  用v-html解决Vue.js渲染中html标签不被解析的问题  C++如何使用std::optional?(处理可选值)  郑州企业网站制作公司,郑州招聘网站有哪些?  学校为何禁止电信移动建设网站?  如何破解联通资金短缺导致的基站建设难题?  如何通过wdcp面板快速创建网站?  宝塔新建站点为何无法访问?如何排查?  北京企业网站设计制作公司,北京铁路集团官方网站?  网站app免费制作软件,能免费看各大网站视频的手机app?  如何在建站之星绑定自定义域名?  制作门户网站的参考文献在哪,小说网站怎么建立?  制作表格网站有哪些,线上表格怎么弄?  c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】  制作营销网站公司,淘特是干什么用的?  制作网页的网站有哪些,电脑上怎么做网页?  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  如何快速配置高效服务器建站软件?  高端云建站费用究竟需要多少预算?  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  攀枝花网站建设,攀枝花营业执照网上怎么年审?  整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?  制作充值网站的软件,做人力招聘为什么要自己交端口钱?  北京网站制作的公司有哪些,北京白云观官方网站?  C#如何在一个XML文件中查找并替换文本内容  php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  如何在万网主机上快速搭建网站?  淘宝制作网站有哪些,淘宝网官网主页?  如何用wdcp快速搭建高效网站?  赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?  专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?  建站主机选购指南:核心配置与性价比推荐解析  如何在万网开始建站?分步指南解析  大连 网站制作,大连天途有线官网?  如何在西部数码注册域名并快速搭建网站?  制作网站的模板软件,网站怎么建设?  如何通过虚拟主机快速完成网站搭建?  ,怎么用自己头像做动态表情包?  制作农业网站的软件,比较好的农业网站推荐一下?  如何快速搭建高效WAP手机网站?  高端智能建站公司优选:品牌定制与SEO优化一站式服务  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。