WPF AvalonDock 常用功能使用

  1. AvalonDock是什么?

            

    1. AvalonDock是一个开源项目【GitHub - Dirkster99/AvalonDock: Our own development branch of the well known WPF document docking libraryGitHub - Dirkster99/AvalonDock: Our own development branch of the well known WPF document docking libraryGitHub - Dirkster99/AvalonDock: Our own development branch of the well known WPF document docking library】,也有付费的;免费的也够基本功能使用了;主要用于管理可停靠式布局,有窗格和文档两类,AvalonDock库提供了一些类,【这部分借用了网上一些文章的优秀总结】如
    2. DockingManager : 停靠管理器类,是AvalonDock中的核心控件之一,负责管理浮动窗体、布局存储、恢复,样式主题等。在XAML中,是AvaDock元素的根节点
    3. LayoutRoot : 布局根节点类,DockingManager中的内容控件完全占满DockingManager中的空间。LayoutRoot包含四个属性,LeftSide,RightSide,TopSide,BottomSide,分别用于展示DockingManager中左右上下四个位置的内容,但初始状态为隐藏状态。另外两个属性FloatingWindows,Hidden分别为浮动窗体集合和隐藏窗体集合。当一个窗格浮动时,AvalonDock会将其从其所在组中删除,然后放置到FloatingWindows集合中。当一个窗格关闭时,会将其放置在Hidden集合中。
    4. LayoutPanel:布局面板类,LayoutRoot中的内容控件,完全占满LayoutRoot中的空间,在LayoutPanel中,可以有多个LayoutGroup,可以设定Orientation 属性,控件布局组的浮动方向。实际的窗格都位于LayoutPanel节点下。
    5. LayoutAnchorablePane:可停靠窗格类,浮动窗格是可停靠控件LayoutAnchorable的容器。一个窗格中,可以有多个可停靠控件。浮动窗格中的可停靠控件只能是LayoutAnchorable.窗格大小设定后,不能自动改变。
    6. LayoutDocumentPane:文档窗格类,与LayoutAnchorablePane类似,也是可停靠控件的容器,文档窗格类中可以放置可停靠控件LayoutAnchorable,也可以放置文档控件LayoutDocument,LayoutDocunemtPane会自动占满窗体的窗体布局中的剩余空间。
    7. LayoutAnchorablePaneGroup:可停靠窗格组类,是可停靠窗格
    8. LayoutAnchorablePane的容器。通过设置Orientation 属性,用于管理多个可停靠窗格的浮动方向。LayoutDocumentPaneGroup:文档窗格组类,是文档窗格
    9. LayoutDocumentPane的容器。通过设置Orientation 属性,用于管理多个文档窗格的浮动方向。
    10. LayoutAnchorable:可停靠内容类,一般放置在LayoutAnchorablePane中,其内容可以是用户自定义控件类型,比如,在UserControl中设置好WPF基础控件布局,然后将整个UserControl放置在LayoutAnchorable中,这样,整个UserControl内容就可以随着可停靠控件一起浮动或者停靠。
    11. LayoutDocument:文档类,与LayoutAnchorable功能类似,区别在于LayoutDoucument会随着LayoutDocumentPane一起占满窗体剩余空间。
    12. 我们主要关心和使用最多就是这两个LayoutAnchorable LayoutDocument
    13. Demo使用最新稳定版4.72.0
  2. 那些场景可能需要它?
    1. 我思考有以下几个场景,IDE开发,大型复杂主页,一个窗口需要展示很多个绘图界面
  3. 怎么获取它?

     直接在VS里面工具=》NuGet包管理器=》管理解决方案的NuGet程序包=》浏览搜索下载

  4. 怎么正确使用它?

    1. 在xaml中添加命名空间xmlns:ad="https://github.com/Dirkster99/AvalonDock"
    2. 新建DockingManager-》LayoutRoot-》LayoutPanel-》LayoutAnchorablePane/LayoutDocumentPaneGroup-》LayoutAnchorablePane/LayoutDocumentPane-》LayoutAnchorable/LayoutDocument看代码有手就会
    3. 想要在一个窗格或文档中添加更多空间可以使用UserControl用户控件添加,需要用grid包起来
    4. 在viewModel中添加一些业务逻辑,我这里是添加一个按钮,触发不断绘图,测试窗格最大化性能
  5. 性能怎样?
    1. 在文字信息显示还是很非常优秀,但是如果绘图点过多或画面尺寸比较大,会很吃内存,我只画了1000个点就很卡了,建议限制显示最大尺寸以满足业务需求
  6. 代码仓库?
    1. WPF-AvalonDock-Demo: WPF 基于Prism框架 使用AvalonDock (gitee.com)
  • 8
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值