【简介】
WeiFenLuo.winFormsUI.Docking.dll是开源项目DockPanel Suite的一个类库,可以实现像Visual Studio的窗口停靠、拖拽等功能。
WeifenLuo.WinFormsUI.Docking是一个很强大的界面布局控件,可以保存自定义的布局为XML文件,可以加载XML配置文件。
【dll下载】
下载地址:https://github.com/dockpanelsuite/dockpanelsuite
控件dockpanel中提供了几个可用的类, 重要的有两个, 一是DockPanel, 一是DockContent。
DockPanel是从panel继承出来的, 用于提供可浮动的dock的子窗口进行浮动和dock的场所。
DockContent是从form类中继承出来的, 用于提供可浮动的窗口基类。就是说: DockContent对象可以在DockPanel对象中任意贴边, 浮动, TAB化等。
【使用说明】
1、再项目中添加引用WeifenLuo.WinFormsUI.Docking.dll。
2、工具箱->右键->添加选项卡,命名为DockingUI(名称可随意)。
3、选中添加的选项卡“DockingUI”->右键->选择项->.Net Framework 组件->浏览->weiFenLuo.winFormsUI.Docking.dll->点击确定后,工具箱中出现DockPanel。
4、新建主窗体MainForm,将DockPanel拖到窗体MainForm上,设置Dock属性为:Fill。窗体属性IsMdiContainer设置为:True。
5、新建子窗体Form1,Form2,在所有的窗体MainForm,Form1,Form2中添加引用:
using WeifenLuo.WinFormsUI.Docking;
6、将窗体的继承类从Form改为DockContent:
public partial class Form1 : DockContent // 之前为Form { public Form1() { InitializeComponent(); } }
7、在MainForm的Load事件中添加如下代码:
private void MainForm_Load(object sender, EventArgs e) { Form1 frm1 = new Form1(); Form2 frm2 = new Form2(); //DockState为窗体的停靠状态 frm1.Show(dockPanel1, DockState.DockLeft); frm2.Show(dockPanel1); }
8、运行代码,可查看最终效果。
【可能出现的问题】
【问题描述】:DockPanel.Theme must be set to a valid theme.
【解决方案】:http://www.boxuming.com/Blog/Article/Index/3773
【参考资料】