简介

  公司最近一个项目,软件采用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初步实现了我们需要的选项卡效果。

WPF实现选项卡效果(1)——使用AvalonDock相关推荐

  1. 用fieldset标签轻松实现Tab选项卡效果

    fieldset是一个不常用的HTML标签,它可以将表单内的元素分组显示,legend标签为 fieldset 元素定义标题.由于各浏览器在显示fieldset和legend结构时会自动为其添加边框和 ...

  2. WPF实现物理效果 拉一个小球

    原文:WPF实现物理效果 拉一个小球 一直以来都对物理效果有神秘感,完全不知道怎么实现的.直到看到了周银辉在老早前写的一篇博客:http://www.cnblogs.com/zhouyinhui/ar ...

  3. WPF 实现水纹效果

    WPF 实现水纹效果 原文:WPF 实现水纹效果 鼠标滑过产生水纹,效果图如下: XMAL就放置了一个img标签 后台主要代码 窗体加载: private void Window_Loaded(obj ...

  4. 微信小程序实例:实现tabs选项卡效果

    最近微信应用号是炒的如火如荼,热门满满,但是也可以发现搜索关键词出来,各类网站出现的还都是微信的官方文档解释.正好赶上这个热潮,这几天先把小程序技术文档看了个遍,就直接着手写案例了.很多组件微信内部已 ...

  5. Vue 框架-06-条件语句 v-if 实现选项卡效果

    Vue 框架-06-条件语句 v-if 实现选项卡效果 本片介绍的是 Vue 中条件语句 v-if 第一个小实例是,通过 v-if="布尔值",通过布尔值的真假来决定,某元素是否显 ...

  6. html选项卡切换代码,js实现简单的可切换选项卡效果

    本文实例讲述了js实现简单的可切换选项卡效果的方法.分享给大家供大家参考.具体如下: 如图,最简单的纯粹的选项卡 第一步,当然是先写html代码和css样式 无标题文档 body,ul,li{marg ...

  7. WPF 按钮动画效果制作

    概要:本文将通过WPF按钮与Flash按钮的制作流程的对比讲解如何用Xaml实现按钮动画,同时你也还能学习Expression Blend.本文假设你正在制作一套点饮料的系统,现在你要做的就是制作出一 ...

  8. WPF实现聚光灯效果

    WPF开发者QQ群: 340500857  | 微信群 -> 进入公众号主页 加入组织 欢迎转发.分享.点赞.在看,谢谢~. 前言 效果仿照 CSS聚光灯效果 https://www.jians ...

  9. WPF 实现火炬效果

    WPF开发者QQ群: 340500857  | 微信群 -> 进入公众号主页 加入组织 欢迎转发.分享.点赞.在看,谢谢~. 01 - 效果预览 02 - 代码如下 一.FireControl. ...

  10. publiccms实现多层级选项卡效果

    大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂 前言 距离上次更新已经好久了~最近心有余而力不足.. 最近在学习freammarker标签,算是比较老的技术了,白天写,晚上做梦都在写,不吐槽了,反 ...

最新文章

  1. 程序控制发送文件到邮箱_Intouch邮件发送的真实案例(一),不可多得的技术尝试...
  2. React开发(117):ant design 新方式
  3. 三角剖分求多边形面积的交 HDU3060
  4. java url 本地文件是否存在_我的应用程序知道URL中是否存在文件会一直停止[重复]...
  5. [2013.9.27][cpp]一个简单的链接栈模型
  6. adb查看activity的堆栈信息
  7. MongoDB游标操作(4)
  8. tomcat中开启SSL
  9. PotPlayer优化与最高画质设置(最强本地播放器)
  10. python3.5 3.6_centos7安装较高版本python3.5/3.6
  11. 奶块最新服务器叫什么,奶块5.4.0版本更新公告
  12. 简易旋转倒立摆及控制装置-电赛训练
  13. ADMM算法求解一个简单的例子
  14. Ubuntu对CPU进行测试
  15. ssm框架体检管理系统源码+文档
  16. 骞云科技携手上海电力、兴业证券,双案例入选2022年CMP优秀案例
  17. ROM(只读存储器)
  18. Spring Boot电商项目57:订单模块六:【前台:生成支付二维码】接口;(支付url的拼凑;利用zxing生成二维码;二维码图片的存储;真实地址与可访问地址的转换;)
  19. 北美Developer生存发展攻略
  20. QQ复读机java脚本怎么用_教你制作一个QQ复读机机器人【1】接收消息

热门文章

  1. MT7621路由器芯片/处理器参数介绍
  2. Keras入门(八)K折交叉验证
  3. clodop配置SSL证书 WEB打印机服务
  4. ANDROID高仿京东分类_类似京东分类界面源代码下载
  5. 炫龙dcpro黑苹果_毁灭者DC W650DC装黑苹果心得
  6. ER studio使用
  7. IDEA 思维导图 ,类UML 图工具插件 plantUML integration
  8. unity读取Json文件
  9. linux 更新cuda 驱动程序,记:第一次更新服务器CUDA和GPU驱动
  10. VS2019的动态库dll在lua中调用及lua.exe和luac.exe的使用方法