WPF实现选项卡效果(1)——使用AvalonDock

article/2025/9/24 21:52:23
WPF实现选项卡效果(1)——使用AvalonDock
原文: WPF实现选项卡效果(1)——使用AvalonDock

简介

  公司最近一个项目,软件采用WPF开发,需要实现类似于VS的选项卡(或者是浏览器的选项卡)效果。搜寻诸多资料后,发现很多同仁推荐AvalonDock这款开源控件。在其官方地址下载源码和Demo后,对其进行了初步的研究,初步实现了预期效果。
  完整系列
  ● 第一部分
  ● 第二部分
  ● 第三部分
  在Git中下载工程源码

AvalonDocking的结构树

  在下载的Demo中,我们可以发现AvalonDock的可视化结构树如下:

<avalon:DockingManager x:Name="dockingManager"><avalon:LayoutRoot><avalon:LayoutPanel Orientation="Horizontal"><avalon:LayoutDocumentPane DockWidth="300"><avalon:LayoutAnchorable Title="Sample Tool Pane"><TextBox /></avalon:LayoutAnchorable></avalon:LayoutDocumentPane></avalon:LayoutPanel></avalon:LayoutRoot></avalon:DockingManager>
Created with Raphaël 2.1.0AvalonDock 可视化结构树DockingManagerDockingManagerLayoutRootLayoutRootLayoutPanelLayoutPanelLayoutDocumentPaneLayoutDocumentPaneLayoutAnchorableLayoutAnchorableContentContent承载承载承载承载我们需要的内容

我们来做一个Demo

Step 1-创建WPF项目

  在Visual Studio中新建一个WPF项目,然后打开MainWindow.xaml文件,修改其代码如下:  

<Window x:Class="AvalonProject.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:avalon="http://schemas.xceed.com/wpf/xaml/avalondock"Title="MainWindow" Height="600" Width="800"><Grid><avalon:DockingManager x:Name="dockingManager"><avalon:LayoutRoot><avalon:LayoutPanel Orientation="Horizontal"><avalon:LayoutDocumentPane DockWidth="300"><avalon:LayoutAnchorable Title="Sample Tool Pane"><TextBox /></avalon:LayoutAnchorable></avalon:LayoutDocumentPane></avalon:LayoutPanel><avalon:LayoutRoot.LeftSide><avalon:LayoutAnchorSide><avalon:LayoutAnchorGroup><avalon:LayoutAnchorable  Title="Autohidden Content"><TextBox /></avalon:LayoutAnchorable></avalon:LayoutAnchorGroup></avalon:LayoutAnchorSide></avalon:LayoutRoot.LeftSide></avalon:LayoutRoot></avalon:DockingManager></Grid>
</Window>

Step 2-添加AvalonDock引用

  在刚刚建好的项目中,添加Xceed.Wpf.AvalonDock引用。
  我们回顾上面的xaml代码,其中有一句代码:

xmlns:avalon="http://schemas.xceed.com/wpf/xaml/avalondock"

  这一句就是xaml代码对AvalonDock命名控件的引用,只有添加这一句才能在xaml代码中对AvalonDock的控件进行使用。

Step 3-运行程序

  运行程序,我们发现效果如下:
  这里写图片描述
  这里写图片描述

总结

  在上面的代码中,我们没有书写任何C#代码,利用AvalonDock初步实现了我们需要的选项卡效果。

posted on 2018-08-14 10:55 NET未来之路 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/lonelyxmas/p/9473251.html


http://chatgpt.dhexx.cn/article/GTK6SwSE.shtml

相关文章

AvalonDock使用(2)-简单布局设置

在上一篇《AvalonDock的基本用法》中&#xff0c;我们使用AvalonDock控件&#xff0c;简单实现了&#xff0c;停靠左右两边的面板&#xff1b;这是面板的默认停靠位置&#xff1b;当然你也可以拖动它&#xff0c;让浮动&#xff0c;也可以让它停靠在其它地方&#xff1b; 通过简…

wpf-AvalonDock-使用技巧总结

LayoutAnchorable展示时的宽度 开始时LayoutAnchorable是隐藏的&#xff0c;控制展示时的宽度用 <avalondock:LayoutAnchorable Title"描述信息" AutoHideWidth"300">

Avalondock 第四步 边缘停靠

前一章介绍了分组功能&#xff0c;这一章主要介绍细节信息&#xff0c;LayoutRoot的side属性 LayoutRoot包含四个属性&#xff0c;LeftSide&#xff0c;RightSide,TopSide,BottomSide,分别用于展示DockingManager中左右上下四个位置的内容&#xff0c;但初始状态为隐藏状态。 …

Avalondock 第二步 创建文档面板

Avalondock 第二步 创建文档面板 上一篇已经介绍了如何创建一个停靠面板&#xff0c;本章主要介绍&#xff0c;文档面板的定义。文档面板和可停靠面板很相似 建立文档面板LayoutDocumentPane LayoutDocumentPane:文档窗格类&#xff0c;与LayoutAnchorablePane类似&#xff…

【AvalonDock】布局控件使用教程

1、Nuget 包 XceedProucts.Wpf.Toolkit.AvalonDock 包安装 2、安装完成&#xff0c;项目会引入这两个dll 3、在MainWindows窗体中引入命名空间 xmlns:avalon"http://schemas.xceed.com/wpf/xaml/avalondock" 4、Avalon 布局。 靠边隐藏窗口 LayoutRoot.LeftSid…

Avalondock 技巧之如何隐藏浮动面板停靠器

avalondock 技巧之如何隐藏浮动面板停靠器 之前开发的一个项目需要实现窗口的浮出&#xff0c;拖拽&#xff0c;停靠等功能&#xff0c;于是想到了神器Avalondock&#xff0c;这个框架功能相当强大&#xff0c;而且能实现多种主题样式的控件&#xff0c;特别是窗口的浮动停靠等…

[转]AVALONDOCK 2.0入门指南第一部分

AvalonDock 2.0可以用来为WPF创建一个类似Visual Studio的界面&#xff0c;深入理解如何使用AvalonDock进行开发是很重要的。 在这个入门指南里&#xff0c;我将演示如何开始使用AvalonDock&#xff0c;下面的文章都是基于2.0版本的。并且不能用于早期的版本。 AvalonDock是一个…

WPF AvalonDock拖拽布局学习整理

AvalonDock提供了一个系统&#xff0c;允许开发人员使用类似于许多流行的集成开发环境&#xff08;IDE&#xff09;中的窗口对接系统来创建可自定义的布局。 AvalonDock遵循MVVM设计。Model由Xceed.Wpf.AvalonDock.Layout命名空间中包含的类表示。此命名空间中的类是布局模型中…

WPFAvalonDock基本用法

本文简单介绍AvalonDock2.0基本用法&#xff0c;下载AvalonDock 2.0dll及主题http://avalondock.codeplex.com/ AvalonDock基本类介绍 DockingManager:停靠管理类&#xff0c;xaml中AvalonDock的根节点 LayoutRoot:布局根节点&#xff0c;有四个属性LeftSide,RightSide,TopS…

AvalonDock的基本用法

AvalonDock是优秀的开源项目&#xff0c;用于创建可停靠式布局&#xff0c;能够在WPF中方便开发出类似VS2010的软件界面。对于复杂的软件系统&#xff0c;大量控件的使用会使的界面变得难以管理。AvalonDock帮我们解决了这一问题。想要在WPF项目中使用AvalonDock的功能&#xf…

WPF随笔(十)--使用AvalonDock实现可停靠式布局

我们每天使用的许多软件都使用了可停靠式布局&#xff0c;可以方便的打开、关闭、收起、展开、移动选项卡。今天就来说明如何使用AvalonDock实现这种可停靠式布局。 AvalonDock安装 最新版本的AvalonDock类库包含在程序包Extended.Wpf.Toolkit中&#xff0c;属于Xceed旗下的一…

WPF AvalonDock 常用功能使用

AvalonDock是什么&#xff1f; 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 docume…

WPF 第三方控件学习使用——可停靠布局控件(AvalonDock)

需求 近期在做公司上位机产品规划与实验&#xff0c;参考了Blender软件的布局风格&#xff0c;希望能用WPF也做一个类似布局的上位机。于是开始寻找资源&#xff0c;很快就发现了AvalonDock。 AvalonDock简介 AvalonDock是Xceed公司 Wpf.Toolkit 中的一款收费产品&#xff0…

wpf-AvalonDock基础-安装和更换主题

2022/7/29更新&#xff1a;去掉标题行的钉子 在LayoutAnchorable上添加属性&#xff1a; CanAutoHide"False" CanClose"False"如果要去掉X&#xff0c;再添加 CanHide"False"最近对wpf的多窗口排列问题深感头疼&#xff0c;算尺寸、位置太麻烦…

AvalonDock使用(1)-基本用法

AvalonDock的基本用法 介绍AvalonDock库中的基本类DockingManager&#xff1a;停靠管理器类LayoutRoot : 布局根节点类LayoutPanel&#xff1a;布局面板类LayoutAnchorablePane&#xff1a;可停靠窗格类LayoutAnchorable:可停靠内容类 LayoutDocumentPane:文档窗格类LayoutDocu…

十进制-75在计算机中,十进制数75转换成二进制数是多少?

75转换成二进制是&#xff1a;1001011。 75/237......1 37/218......1 18/29.........0 9/24...........1 4/22...........0 2/21...........0 从下往上读余数&#xff0c;就是整数部分的案1001011。拓展资料&#xff1a; 十进制整数转换为二进制整数方法&#xff1a; 十进制整…

二进制数的算术运算

2&#xff0c; 二进制数的算术运算 2.1 二进制数的算术运算 二进制数的算术运算包括加法、减法、乘法和除法。 1)加法运算 加法进位规则:逢二进一。 加法运算法则: 000 01101 1110(向高位进位) 例:(1101)2(1011)2?&#xff0c;解算如下: 从执行加法的过程可知&…

二进制数与十进制数的相互转换、二进制数的乘除运算、移位运算

二进制数与十进制数的转换 聊二进制数的运算前&#xff0c;我们先看看二进制数的值与十进制数的值是如何相互转换的&#xff0c; 十进制转换成二进制 将十进制数除以2&#xff0c;得到的商再除以2&#xff0c;依次类推直到商为1时为止&#xff0c;然后在旁边标出各步的余数&am…

计算机组成原理 二进制数的运算

1、算数运算 &#xff08;1&#xff09;加法运算 二进制加法法则为&#xff1a; 000 10011 110&#xff08;向邻近高位有进位&#xff09; 1111&#xff08;向邻近高位有进位&#xff09; &#xff08;2&#xff09;减法运算 二进制减法法则为&#xff1a; 0-00 1-10 1-01 0-1…

将输入的十进制数转换成二进制数

软件&#xff1a;DEV&#xff0c;语言&#xff1a;C语言。 声明&#xff1a;本案例只考虑了整数&#xff08;即int型&#xff09;&#xff0c;故无法进行小数之间的转换&#xff08;例如float型&#xff0c;double型&#xff09;。 十进制整数转换为二进制整数采用"除2取…