AvalonDock使用(1)-基本用法

AvalonDock使用(1)-基本用法AvalonDock的基本用法介绍AvalonDock库中的基本类DockingManager:停靠管理器类LayoutRoot:布局根节点类LayoutPanel:布局面板类LayoutAnchorablePane:可停靠窗格类LayoutAnchorable:可停靠内容类LayoutDocumentPane:文档窗格类LayoutDocument:文档类LayoutAnchorablePaneGroup:可停靠窗格组类LayoutDocumentPaneGroup:文档窗格组类小结具体的用法1.通

大家好,又见面了,我是你们的朋友全栈君。

介绍

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. 运行效果

在这里插入图片描述
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/162143.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 欢欣雀跃还是欢呼雀跃_极空间 docker

    欢欣雀跃还是欢呼雀跃_极空间 dockerAnaconda清华镜像已经恢复使用!目录1.Anaconda清华源终于活了!2.配置命令:2.1添加清华anaconda镜像:2.1Conda附加库:conda-forgemsys2biocondamenpopytorch1.Anaconda清华源终于活了!2.配置命令:2.1添加清华anaconda镜像:condaconfig–addchannelsh…

    2022年10月26日
  • 1bit等于多少字节,换算方法??[通俗易懂]

    1bit等于多少字节,换算方法??[通俗易懂]1比特(bit)=0.125字节(b)1B就是1个字节。Byte、KB、B、MB、GB之间的关系是:Bit——比特B——字节KB——千字节MB——兆字节GB——吉字节TB——太字节1B=8Bit计算机64位的=8个字节…

    2022年5月26日
  • 免费版(个人家庭免费使用)xshell7 和 xftp7 下载

    免费版(个人家庭免费使用)xshell7 和 xftp7 下载xshell6、xftp6个人免费版:百度云下载地址:https://pan.baidu.com/s/19mTPpYgXo65u9SCI1IINPQ密码:9wr0安装完毕,启动时会有弹出框,关闭即可缺点:一个xshell中shell窗口个数最多四个,有限制,可以下载下面xmanager5套件,使用不受限制xmanager5[包含xshell,xftp5]:xman…

    2022年10月12日
  • Python爬取热搜数据之炫酷可视化[通俗易懂]

    Python爬取热搜数据之炫酷可视化[通俗易懂]可视化展示看完记得点个赞哟微博炫酷可视化音乐组合版来了!项目介绍背景现阶段、抖音、快手、哗哩哗哩、微信公众号已经成为不少年轻人必备的“生活神器”。在21世纪的今天,你又是如何获取外界的信息资源的?相信很多小伙伴应该属于下面这一种类型的:事情要想知道快,抖音平台马上拍;微博热搜刷一刷,聚焦热点不愁卖;闲来发呆怎么办,B站抖音快手来;要是深夜无聊备,微信文章踩一踩;哈哈哈,小小的活跃一下气氛在这个万物互联的时代,已不再是那个“从前慢,车马慢….

    2022年5月20日
  • Java中利用DatagramPacket与DatagramSocket进行通讯的示例

    Java中利用DatagramPacket与DatagramSocket进行通讯的示例对以下demo进行了扩展,增了消息循环和等待。 Java中的DatagramPacket与DatagramSocket的初步扩展的代码如下:1.接收端工程代码:由于接收端的控制台log会被发送端的log冲掉,所以把log写到文件中。packagecom.ameyume.receiver;importjava.io.File;importjava.io.FileNotFoundExcep

    2022年5月4日
  • softmax、softmax损失函数、cross-entropy损失函数[通俗易懂]

    softmax、softmax损失函数、cross-entropy损失函数[通俗易懂]softmaxsoftmax,顾名思义,就是soft版本的max。在了解softmax之前,先看看什么是hardmax。hardmax就是直接选出一个最大值,例如[1,2,3]的hardmax就是3,而且只选出最大值,非黑即白,但是实际中这种方式往往是不合理的,例如对于文本分类来说,一篇文章或多或少包含着各种主题信息,我们更期望得到文章属于各种主题的概率值,而不是简单直接地归类为某一种唯一的主题。这里就需要用到soft的概念,即不再唯一地确定某一个最大值,而是为每个输出分类

    2022年6月26日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号