AvalonDock的基本用法

  • 介绍
  • AvalonDock库中的基本类
      • DockingManager:停靠管理器类
      • LayoutRoot : 布局根节点类
      • LayoutPanel:布局面板类
        • LayoutAnchorablePane:可停靠窗格类
          • LayoutAnchorable:可停靠内容类
        • LayoutDocumentPane:文档窗格类
          • LayoutDocument:文档类
        • LayoutAnchorablePaneGroup:可停靠窗格组类
        • LayoutDocumentPaneGroup:文档窗格组类
    • 小结
  • 具体的用法
    • 1. 通过Nuget添加 AvalonDock控件
    • 2. 引用命名空间
    • 3. 添加布局面板
    • 4. 运行效果

介绍

AvalonDock 是一个开源项目,用于创建可停靠式布局,能够在WPF中方便开发出类似VS2010的软件界面。

下载地址:http://avalondock.codeplex.com/releases/view/107371
AvalonDock效果截图

AvalonDock库中的基本类

AvalonDock库中提供了一些基本的类,熟悉这些类的功能是使用AvalonDock的第一步。

DockingManager:停靠管理器类

DockingManage是AvalonDock中的核心控件之一,负责管理浮动窗体、布局存储、恢复,样式主题等。在XAML中,是AvaDock元素的根节点。

LayoutRoot : 布局根节点类

LayoutRoot 是DockingManager中的内容控件完全占满DockingManager中的空间。
LayoutRoot属性:LeftSide,RightSide,TopSide,BottomSide,分别用于展示DockingManager中左右上下四个位置的内容,但初始状态为隐藏状态。
FloatingWindows,Hidden分别为浮动窗体集合和隐藏窗体集合。当一个窗格浮动时,AvalonDock会将其从其所在组中删除,然后放置到FloatingWindows集合中。当一个窗格关闭时,会将其放置在Hidden集合中。

LayoutPanel:布局面板类

LayoutPanel是LayoutRoot中的内容控件,完全占满LayoutRoot中的空间;在LayoutPanel中,可以有多个LayoutGroup;
LayoutPanel可以设定Orientation 属性,控件布局组的浮动方向。实际的窗格都位于LayoutPanel节点下。

LayoutAnchorablePane:可停靠窗格类

可浮动窗格是可停靠控件LayoutAnchorable的容器。
一个窗格中,可以有多个可停靠控件。浮动窗格中的可停靠控件只能是LayoutAnchorable.窗格大小设定后,不能自动改变。

LayoutAnchorable:可停靠内容类

一般放置在LayoutAnchorablePane中,其内容可以是用户自定义控件类型,比如,在UserControl中设置好WPF基础控件布局,然后将整个UserControl放置在LayoutAnchorable中,这样,整个UserControl内容就可以随着可停靠控件一起浮动或者停靠。

LayoutDocumentPane:文档窗格类

与LayoutAnchorablePane类似,也是可停靠控件的容器; 文档窗格类中可以放置可停靠控件LayoutAnchorable,也可以放置文档控件LayoutDocument;
LayoutDocunemtPane会自动占满窗体的窗体布局中的剩余空间。

LayoutDocument:文档类

与LayoutAnchorable功能类似,区别在于LayoutDoucument会随着LayoutDocumentPane一起占满窗体剩余空间。

LayoutAnchorablePaneGroup:可停靠窗格组类

LayoutAnchorablePaneGroup是可停靠窗格LayoutAnchorablePane的容器。通过设置Orientation 属性,用于管理多个可停靠窗格的浮动方向。

LayoutDocumentPaneGroup:文档窗格组类

LayoutDocumentPaneGroup是文档窗格LayoutDocumentPane的容器。通过设置Orientation 属性,用于管理多个文档窗格的浮动方向。

小结

其实AvalonDock中的类有着明显的层次结构,就是容器的嵌套。DockingManager作为顶层容器,然后包含一个LayoutRoot对象,LayoutRoot中又包含一个LayoutPanel对象。LayoutPanel中便是LayoutAnchroablePane对象和LayouDocumentPane对象的集合。同时,可以对LayoutAnchroablePane对象和LayouDocumentPane对象进行分组,每个组可以单独设定组内的浮动方向。LayoutAnchorablePane又是LayoutAnchorable的容器,LayioutDocumanePane又是LayoutDocument的容器。一层一层进行嵌套,在最后的LayoutAnchorable中或者LayoutDocument中,我们放入我们真正的控件对象,这样,就可以对他们进行分类摆放布局

具体的用法

下面介绍具体的用法。

1. 通过Nuget添加 AvalonDock控件


2. 引用命名空间
 xmlns:AvDock="http://schemas.xceed.com/wpf/xaml/avalondock"
3. 添加布局面板
        <AvDock:DockingManager><AvDock:LayoutRoot><AvDock:LayoutPanel Orientation="Horizontal"><AvDock:LayoutAnchorablePaneGroup x:Name="LeftPanels"><AvDock:LayoutAnchorablePane DockWidth="100"></AvDock:LayoutAnchorablePane><AvDock:LayoutAnchorablePane DockWidth="200" x:Name="LeftPanel1"><AvDock:LayoutAnchorable x:Name="LeftPanel1Region" Title="LeftPanel1Region"></AvDock:LayoutAnchorable></AvDock:LayoutAnchorablePane></AvDock:LayoutAnchorablePaneGroup><AvDock:LayoutAnchorablePaneGroup x:Name="RightPanels"><AvDock:LayoutAnchorablePane DockWidth="300" x:Name="RightPanel1"><AvDock:LayoutAnchorable x:Name="RightPanel1Region" Title="RightPanel1Region"></AvDock:LayoutAnchorable></AvDock:LayoutAnchorablePane></AvDock:LayoutAnchorablePaneGroup></AvDock:LayoutPanel></AvDock:LayoutRoot></AvDock:DockingManager>
4. 运行效果


AvalonDock使用(1)-基本用法相关推荐

  1. c语言中external,static关键字用法

    static用法: 在C中,static主要定义全局静态变量.定义局部静态变量.定义静态函数. 1.定义全局静态变量:在全局变量前面加上关键字static,该全局变量变成了全局静态变量.全局静态变量有 ...

  2. Pandas_transform的用法

    先来看一个实例问题. 如下销售数据中展现了三笔订单,每笔订单买了多种商品,求每种商品销售额占该笔订单总金额的比例.例如第一条数据的最终结果为:235.83 / (235.83+232.32+107.9 ...

  3. Python中yield和yield from的用法

    yield 后面接的是 future 对象 调用方 委托生成器 yield from 直接给出循环后的结果 yield from 委托者和子生成器直接通信 yield from 直接处理stopIte ...

  4. pytorch学习 中 torch.squeeze() 和torch.unsqueeze()的用法

    squeeze的用法主要就是对数据的维度进行压缩或者解压. 先看torch.squeeze() 这个函数主要对数据的维度进行压缩,去掉维数为1的的维度,比如是一行或者一列这种,一个一行三列(1,3)的 ...

  5. python yield 和 yield from用法总结

    #例1. 简单输出斐波那契數列前 N 个数 #缺点:该函数可复用性较差,因为 fab 函数返回 None,其他函数无法获得该函数生成的数列 #要提高 fab 函数的可复用性,最好不要直接打印出数列,而 ...

  6. tf.nn.embedding_lookup()的用法

    函数: tf.nn.embedding_lookup( params, ids, partition_strategy='mod', name=None, validate_indices=True, ...

  7. OpenMP用法大全

    OpenMP基本概念 OpenMP是一种用于共享内存并行系统的多线程程序设计方案,支持的编程语言包括C.C++和Fortran.OpenMP提供了对并行算法的高层抽象描述,特别适合在多核CPU机器上的 ...

  8. Dorado用法与示例

    Dorado用法与示例 dorado用后总结 一.dorado概念 dorado的产品全名是"dorado展现中间件".从产品形态上dorado由两部分组成,第一部分是一个具有AJ ...

  9. TensorFlow用法

    TensorFlow用法 什么是TensorFlow TensorFlow是一个开源软件库,用于使用数据流图进行数值计算.图中的节点表示数学运算,而图的边缘表示流动的多维数据数组(张量).这种灵活的体 ...

  10. TensorFlow Keras API用法

    TensorFlow Keras API用法 Keras 是与 TensorFlow 一起使用的更高级别的作为后端的 API.添加层就像添加一行代码一样简单.在模型架构之后,使用一行代码,可以编译和拟 ...

最新文章

  1. 零基础学习 Python 之运算符
  2. 工作中这些实用的小技巧,90%的程序员不知道
  3. unshift() 方法将一个或多个元素添加到数组的开头,并返回新数组的长度
  4. 干货| GitHub高赞精选Jupyter资源列表!
  5. Python程序员之面试必回习题
  6. C++之继承探究(八):动态绑定
  7. python怎么训练模型_GPU如何训练大批量模型?方法在这里
  8. android最新版本下载vivo,vivo官网下载
  9. 一句话+一张图——说清楚Aprioir关联规则算法
  10. B站 根据BV 获取av号 api
  11. “创新驱动的结构化思维”培训
  12. 《禅与摩托车维修艺术》摘录(二)
  13. TCP/TP OSI7层模型和TCP/TP4层模型
  14. CAXA电子图板2013机械版下载及安装教程详解
  15. 图像识别-纯数字识别
  16. welook手机视频通话软件
  17. 关于升级 win10 后打不开网页的小问题!
  18. Linux如何给服务器增加白名单
  19. 炸弹人问题(简单版)
  20. 2012搜狗校园招聘笔试题

热门文章

  1. 基于高德地图API — 绘制热力图初尝试
  2. 利用python的pyqt5和vtk库实现对gcode模型的全彩预览
  3. php英文商城,童装英文外贸网站系统
  4. css设置字母数字字体库信息
  5. 性能测试流程(完整版)
  6. 【转】强大的矩阵奇异值分解(SVD)及其应用
  7. excel函数去重_excel去重函数
  8. Xshell 新手安装教程
  9. nvidia驱动和CUDA的安装
  10. 基于C#木门归方程序 下料机 锯片 CNC 拆单软件 全屋定制设计拆单软件橱柜衣柜拆单设计制造管理一体化软件 有屋软件