WeifenLuo.WinFormsUI.Docking是一个很强大的界面布局控件,可以保存自定义的布局为XML文件,可以加载XML配置文件.!

先看一下效果

使用说明:

1.新建一个WinForm程序,创建4个窗体,FrmMain,窗口1,窗口2,窗口3

2.工具箱->选择项->浏览 选择WeifenLuo.WinFormsUI.Docking.dll动态库, 确定后,工具箱中会多出一个DockPanel控件

3.FrmMain窗体设置为MDI窗体, 即IsMdiContainer属性设置为True,拖入一个DockPanel控件,Dock属性设置为Fill

4.在解决方案中添加引用WeifenLuo.WinFormsUI.Docking.dll,窗口1,窗口2,窗口3中都引入命名空间using WeifenLuo.WinFormsUI.Docking;

把默认继承的Form去掉,全部继承DockContent类

using WeifenLuo.WinFormsUI.Docking;

namespace WeiFenLuoDockPanel

{

public partial class Form1 :DockContent

{

public Form1()

{

InitializeComponent();

}

}

}

继承DockContent类后,窗体会多出一部分属性,其实列举几个常用的属性

CloseButton :指示是否启用关闭按钮,默认为True

CloseButtonVisible:是否显示关闭按钮,默认为True

ShowHint:设置窗体显示的初始位置

TabText:Tab标签上显示的文字,这个与Form的TEXT不同,当窗体显示到布局控件上时,FORM的TEXT是不会显示的

5.准备工作做好了,接写来该如何把窗体Show出来呢?在FrmMain窗体中添加如下字段.

private Form1 f1 =new Form1();

private Form2 f2 = newForm2();

private Form2 f3 = newForm3();

在Load事件中添加如下代码

f1.Show(dockPanel1);

f2.Show(dockPanel1);

f3.Show(dockPanel1);

Ok, Ctrl+F5一把..效果如下

(PS:可能有人会问,如何控制每个窗体显示的位置呢 ? 其实就是上面提到的ShowHint属性来控制)

保存XML配置文件

如果在程序使用过程中,操作人改变了布局样式,且想以后都继续保持那样的样式,那我们就要用到SaveAsXml这个方法了

dockPanel1.SaveAsXml(Path.Combine(Application.StartupPath,"CustomUI.xml"));

SaveAsXml方法有四种重载方式,其中最简单的一种就是带一个字符串参数的那种,参数为XML文件的存放路径,,,

此XML文件中保存的就是一些布局参数,有兴趣的童鞋可以打开详细看看...

加载XML配置文件

如果想利用保存的布局样式,就需要加载保存的XML配置文件,

LoadFromXml方法用来加载配置..

原型:DockPanel.LoadFromXml(stringfileName,DeserializeDockContent deserializeContent)

fileName 文件名

DeserializeDockContent是一个委托,在WeifenLuo.WinFormsUI.Docking命名空间中,此委托用来序列化配置文件中布局窗体的实例,

看代码,,

string uiFile = Path.Combine(Application.StartupPath,"CustomUI.xml");

if (File.Exists(uiFile))

{

DeserializeDockContentddContent = new DeserializeDockContent(GetContentFromPersistString);

dockPanel1.LoadFromXml(uiFile,ddContent);

}

#region 加载布局

private IDockContentGetContentFromPersistString(string persistString)

{

try

{

if (persistString ==typeof(Form1).ToString())

{

return new Form1();

}

if (persistString ==typeof(Form2).ToString())

{

return newForm2();

}

if (persistString ==typeof(Form3).ToString())

{

return newForm3();

}

}

catch (Exception ex)

{

Console.WriteLine(persistString);

}

throw new Exception();

}

#endregion

http://www.cnblogs.com/lppcoding/archive/2010/11/30/1891804.html

控件下载http://sourceforge.net/projects/dockpanelsuite/

1.说明

weiFenLuo.winFormsUI.Docking.dll是开源项目DockPanel Suite的一个类库,可以实现像Visual Studio的窗口停靠、拖拽等功能。WeifenLuo.WinFormsUI.Docking是一个很强大的界面布局控件,可以保存自定义的布局为XML文件,可以加载XML配置文件。

该动态库源自开源项目DockPanelSuite,原始下载链接如下:

http://sourceforge.net/projects/dockpanelsuite/files/?source=navbar

但目前,该动态库已经改至以下链接进行下载与维护:

https://github.com/dockpanelsuite/dockpanelsuite

可下载其源码、可直接使用的dll及示例程序,目前已更新至2.8,可在VS2012环境下使用。

2.使用

dockpanel中提供了几个可用的类, 重要的有两个, 一是DockPanel, 一是DockContent

DockPanel是从panel继承出来的, 用于提供可浮动的dock的子窗口进行浮动和dock的场所, DockContent是从form类中继承出来的, 用于提供可浮动的窗口基类. 就是说: DockContent对象可以在DockPanel对象中任意贴边, 浮动, TAB化等.

添加引用: 1)引用—>添加引用—>浏览—>weiFenLuo.winFormsUI.Docking.dll。 2)窗体属性IsMdiContainer:True。 3)工具箱—>右键—>选择项—>.net组件—>浏览—>weiFenLuo.winFormsUI.Docking.dll—>在工具箱出现dockPanel。 4)将dockPanel拖到窗体Form1上,设置Dock属性为:Fill。 停靠窗体: 1.新建一个WinForm窗体Form2。 2.在代码中修改窗体继承于DockContent。 public partial class Form2 : DockContent 3.在主窗体Form1中显示停靠窗体。 private void Form1_Load(object sender, EventArgs e) {    Form2 form2 = new Form2();    form2.Show(this.dockPanel1);    form2.DockTo(this.dockPanel1, DockStyle.Left); }

3.在线资源示例

讨论比较详细的在线示例是http://www.cnblogs.com/wuhuacong/archive/2009/07/09/1520082.html博客的帖子,其界面显示如下:

其中除上面的菜单之外,其他部分的窗体均可浮动可控制。

开源布局控件 WeifenLuo.WinFormsUI.Docking.dll使用的更多相关文章

  1. Winform- 界面开发之布局控件"WeifenLuo.WinFormsUI.Docking"的使用

    布局控件"WeifenLuo.WinFormsUI.Docking"是一个非常棒的开源控件,用过的人都深有体会,该控件之强大.美观.不亚于商业控件.而且控件使用也是比较简单的. 实 ...

  2. WinForm界面布局控件WeifenLuo.WinFormsUI.Docking"的使用 (一)

    WinForm界面布局控件WeifenLuo.WinFormsUI.Docking"的使用 (一) 编写人:CC阿爸 2015-1-28 在伍华聪的博客中,看到布局控件"Weife ...

  3. WinForm界面开发之布局控件"WeifenLuo.WinFormsUI.Docking"的使用

    WinForm界面开发之布局控件"WeifenLuo.WinFormsUI.Docking"的使用 转自:http://www.cnblogs.com/wuhuacong/arch ...

  4. WinForm界面布局控件WeifenLuo.WinFormsUI.Docking"的使用 (二)

    WinForm界面布局控件WeifenLuo.WinFormsUI.Docking"的使用 (二) 编写人:CC阿爸 2015-1-29 今天我想与大家继续一起分享这一伟大的控件.有兴趣的同 ...

  5. Winform中DockPanel(引用WeifenLuo.WinFormsUI.Docking.dll组件)的使用

    WeiFenLuo.WinFormsUI.Docking.dll是开源项目DockPanel Suite的一个类库,可实现像Visual Studio的窗口停靠.拖拽等功能.WeifenLuo.Win ...

  6. WeifenLuo.WinFormsUI.Docking.dll的用法

    基本框架 说明 weiFenLuo.winFormsUI.Docking.dll是开源项目DockPanel Suite的一个类库,可以实现像Visual Studio的窗口停靠.拖拽等功能.Weif ...

  7. WeiFenLuo.winFormsUI.Docking.dll的使用(停靠效果)

    1.  重置工具箱: 新建一个WinForm程序,项目名称为TestDockPanelControl.选中Form1窗体后选择工具箱--->>新建个添加选项卡命名为WeiFenLuo--- ...

  8. 学习winform第三方界面weiFenLuo.winFormsUI.Docking.dll

    控件dockpanel中提供了几个可用的类, 重要的有两个, 一是DockPanel, 一是DockContent, DockPanel是从panel继承出来的, 用于提供可浮动的dock的子窗口进行 ...

  9. weiFenLuo.winFormsUI.Docking.dll学习

    引用方法: 1.建立一个WinForm工程,默认生成了一个WinForm窗体. 2.引用—>添加引用—>浏览—>weiFenLuo.winFormsUI.Docking.dll. 3 ...

随机推荐

  1. C# Json数据反序列化为Dictionary并根据关键字获取指定值

    Json数据: { "dataSet": { "header": { "returnCode": "0", " ...

  2. Web性能压力测试工具之Siege详解

    PS:Siege是一款开源的压力测试工具,设计用于评估WEB应用在压力下的承受能力.可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进 ...

  3. nginx 重启命令

    #重启nginx sudo /etc/init.d/nginx restart sudo /etc/init.d/nginx Usage: /etc/init.d/nginx {start|stop| ...

  4. Vi 几个实用的命令

    vi有三种工作模式:指令模式.编辑模式和命令模式. 我们从打开vi说起,这样可以确定下学习环境,也方便学习者实践.打开vi,当前模式即为指令模式,此时可以按a, i, 或o进入编辑模式,或按:(冒号) ...

  5. Ubuntu虚拟机与Window、Arm的通信

    Ubuntu虚拟机与Window的通信安装有Ubuntu14.04的虚拟机VMware,将虚拟机的网络适配器配置成NAT类型(默认使用VMnet8进行通信),此时将Ubuntu的IP地址设置成与VMn ...

  6. ofbiz进阶之框架配置文件指导

    The Open For Business Project: Framework Configuration Guide 原文链接:http://ofbiz.apache.org/docs/corec ...

  7. mybatis + postgresql 遇到的问题

    org.postgresql.util.PSQLException: ERROR: relation "circlefence" does not exist  这个问题是数据库表 ...

  8. 通过物理模型生成Java代码

    通过物理模型生成Java代码 软件开发过程中,我们一般是先针对数据库建模,物理建模完成后,生成数据库表,编码阶段的时候我们会针对数据库表生成大量的Javaeban或者是实体类 Powertdesign ...

  9. 【android-cocos2d-X iconv.h】在android下使用iconv

    (1) 下载文件 首先下载iconv文件  下载地址:http://download.csdn.net/detail/dingkun520wy/6703113 把解压后的iconv文件夹放到cocos ...

  10. Apple移动设备处理器指令集 armv6、armv7、armv7s及arm64-b

    Arm处理器,因为其低功耗和小尺寸而闻名,几乎所有的手机处理器都基于arm,其在嵌入式系统中的应用非常广泛,它的性能在同等功耗产品中也很出色. Armv6.armv7.armv7s.arm64都是ar ...