weiFenLuo.winFormsUI.Docking.dll是一个页面布局控件,可以实现子窗口在主窗口上任意贴边停靠、浮动、Tab化。Dock翻译为码头,就是说子窗口停靠到码头上,很形象啊。
使用过程:
1. 准备控件的dll文件,网上可以下载到。
2. 一个小例子
这里创建了一个C#的window Form工程,中有两个form,form1,form2,form1为主窗口,做为码头使用的,form2为浮动窗口,希望通过weiFenLuo.winFormsUI.Docking.dll能停靠在主窗口的四边,中心时形成Tab。
(1)为工程添加引用dll。
(2)将控件添加到工具箱中。
vs2017中,工具箱内右键->选择项->.net组件->浏览,选择准备好的dll文件,工具箱里就出现了DockPanel了。
(3) 设置码头窗口属性。
设置form1的IsMdiContainer为True。将DockPanel拽到form1中,为dockPanel1,设置属性Dock为Fill。
(4)设置浮点窗口属性。
在form2.cs中,作如下修改
using WeifenLuo.WinFormsUI.Docking;
namespace DockWin
{
public partial class Form2 : DockContent
{
public Form2()
{
InitializeComponent();
}
}
}
(5)设置停靠效果。
在form1.cs中,做如下修改
private void Form1_Load(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.Show(this.dockPanel1);
form2.DockTo(this.dockPanel1, DockStyle.Left);
}
(6)运行效果可见。
3. dockpanel中有两个重要的类,DockPanel和DockContent,可以简单的理解,DockPanel是码头,让子窗口停靠的,从panel类继承而来,DockContent是要停到码头上的船,停靠到码头上的内容,从form类继承而来。