您的位置:首页 > 产品设计 > UI/UE

界面布局控件-WeifenLuo.WinFormsUI.Docking_保存窗体布局

2011-01-07 19:36 686 查看
界面布局控件-WeifenLuo.WinFormsUI.Docking_保存窗体布局

//2011年1月7日

我们在使用WeifenLuo.WinFormsUI.Docking控件控制窗体布局后,可以将当前的控件布局格保存下来,当系统再次重新启动的时候,就显示原来已经保存的页面布局格式。

实现思路:

1) 系统退出前,将当前的页面布局保存下来,以XML文件存放

2) 系统加载后,读取该XML的配置信息,然后根据读取的配置信息,显示页面格局。

实现效果如下所示:

保存前的布局样式,也是系统第一运行后的现实效果



调整后的系统布局



实现步骤:

1) 系统退出前,保存当前的布局,代码如下所示:

private void Form1_FormClosing(object sender, FormClosingEventArgs e)

{

string configFile = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath),"DockPanel.config");

//configFile 配置文件保存的路径

dockPanel1.SaveAsXml(configFile);

}

2)窗体加载前的代码

child_1 b = new child_1();//第一个子窗体

child_2 c = new child_2();//第二个子窗体

private DeserializeDockContent ddc;//全局变量

//辅助函数,这里需要注意的是,有几个字控件,就需要有几个if()语句来判断

private IDockContent GetContentFromPersistString(string persistString)

{

//persistString=命名空间+窗体类的命名,比如:WindowsFormsApplication1+child_1

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

{

return b;

}

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

{

return c;

}

return null;

}

//窗体加载调用的函数

private void Form1_Load(object sender, EventArgs e)

{

ddc = new DeserializeDockContent(GetContentFromPersistString); // 放在后面的话会出错。

//返回配置文件的路径

string configFile = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "DockPanel.config");

if (File.Exists(configFile))

{

//如果配置文件存在,就调用该函数,读取配置文件信息

dockPanel1.LoadFromXml(configFile, ddc);

}

else

{

//如果第一次运行系统,或者不存在配置文件,运行下面的代码,显示最原始状态的控件显示布局

b.Show(this.dockPanel1);

b.DockTo(this.dockPanel1, DockStyle.Left);

c.Show(this.dockPanel1);

c.DockTo(this.dockPanel1, DockStyle.Right);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐