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类
继承DockContent类后,窗体会多出一部分属性,其实列举几个常用的属性
CloseButton :指示是否启用关闭按钮,默认为True
CloseButtonVisible:是否显示关闭按钮,默认为True
ShowHint:设置窗体显示的初始位置
TabText:Tab标签上显示的文字,这个与Form的TEXT不同,当窗体显示到布局控件上时,FORM的TEXT是不会显示的
5.准备工作做好了,接写来该如何把窗体Show出来呢?在FrmMain窗体中添加如下字段.
在Load事件中添加如下代码
Ok, Ctrl+F5一把..效果如下
(PS:可能有人会问,如何控制每个窗体显示的位置呢 ? 其实就是上面提到的ShowHint属性来控制)
保存XML配置文件
如果在程序使用过程中,操作人改变了布局样式,且想以后都继续保持那样的样式,那我们就要用到SaveAsXml这个方法了
SaveAsXml方法有四种重载方式,其中最简单的一种就是带一个字符串参数的那种,参数为XML文件的存放路径,,,
此XML文件中保存的就是一些布局参数,有兴趣的童鞋可以打开详细看看...
加载XML配置文件
如果想利用保存的布局样式,就需要加载保存的XML配置文件,
LoadFromXml方法用来加载配置..
原型:DockPanel.LoadFromXml(string fileName,DeserializeDockContent deserializeContent)
fileName 文件名
DeserializeDockContent是一个委托,在WeifenLuo.WinFormsUI.Docking命名空间中,此委托用来序列化配置文件中布局窗体的实例,
看代码,,
01 |
#region 加载布局 |
02 |
private IDockContent GetContentFromPersistString( string persistString) |
03 |
{ |
04 |
try |
05 |
{ |
06 |
if (persistString == typeof (Form1).ToString()) |
07 |
{ |
08 |
return new Form1(); |
09 |
} |
10 |
if (persistString == typeof (Form2).ToString()) |
11 |
{ |
12 |
return new Form2(); |
13 |
} |
14 |
if (persistString == typeof (Form3).ToString()) |
15 |
{ |
16 |
return new Form3(); |
17 |
} |
18 |
} |
19 |
catch (Exception ex) |
20 |
{ |
21 |
Console.WriteLine(persistString); |
22 |
} |
23 |
throw new Exception(); |
24 |
} |
25 |
26 |
#endregion |