控件"WeifenLuo.WinFormsUI.Docking"的使用--如何控制自动停靠窗口的大小问题
如果在程序使用过程中,操作人改变了布局样式,且想以后都继续保持那样的样式,用到SaveAsXml这个方法,可是有点问题解决不了,不知道大家能不能帮我解决。

同时,我也把我的源码粘上吧,方便大家帮我找问题。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
namespace DockPanelTest
{
public partial class MainForm : Form
{
private Form1 f1 = new Form1();
private Form2 f2 = new Form2();
private Form3 f3 = new Form3();
public MainForm()
{
InitializeComponent();
}
private void MainForm_Load(object sender, EventArgs e)
{
f1.Show(dockPanel1);
f2.Show(dockPanel1);
f3.Show(dockPanel1);
string uiFile = Path.Combine(Application.StartupPath, "CustomUI.xml");
if (File.Exists(uiFile))
{
DeserializeDockContent ddContent = new DeserializeDockContent(GetContentFromPersistString);
dockPanel1.LoadFromXml(uiFile, ddContent);
}
}
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
dockPanel1.SaveAsXml(Path.Combine(Application.StartupPath, "CustomUI.xml"));
}
#region 加载布局
private IDockContent GetContentFromPersistString(string persistString)
{
try
{
if (persistString == typeof(Form1).ToString())
{
if (f1 == null)
{
return new Form1();
}
else
{
return f1;
}
}
if (persistString == typeof(Form2).ToString())
{
if (f2 == null)
{
return new Form2();
}
else
{
return f2;
}
}
if (persistString == typeof(Form3).ToString())
{
if (f3 == null)
{
return new Form3();
}
else
{
return f3;
}
}
}
catch (Exception ex)
{
Console.WriteLine(persistString);
}
throw new Exception();
}
#endregion
}
}
相关推荐
WeifenLuo.WinFormsUI.Docking 源代码和例子
布局控件"WeifenLuo.WinFormsUI.Docking"是一个非常棒的开源控件,用过的人都深有体会,该控件之强大、美观、不亚于商业控件。而且控件使用也是比较简单的。
WeifenLuo WinFormsUI.Docking:停靠布局实战指南
在桌面应用开发中,窗口停靠布局(Docking Layout)能显著提升界面可用性,用户可自由拖拽、固定或隐藏面板,IDE类和工具类软件普遍采用。WeifenLuo.WinFormsUI.Docking 是一款老牌开源控件库,为 WinForms 提供类 Visual Studio 的停靠布局方案。其核心机制由 DockPanel、DockContent、DockPane 和 DockState 协同构成,DockPanel 作为顶层容器管理布局树,DockContent 作为面板基类,DockState
WinFrm界面开发之“WeifenLuo.WinFormsUI.Docking+OutLookBar” 使用 V 1.1
最近几天一直在关注WinFrom方面的文章主要还是园子里伍华聪的博客,在看看我们自己写的项目差不忍赌啊,有想着提炼一下项目的公共部分,公共部分有分为 界面,类库两方面,今天主要是把界面也先提炼提炼。
WeifenLuo.WinFormsUI.Docking.dll 源码+示例 支持framwork4 最新版
WeifenLuo.WinFormsUI.Docking.dll的源码+示例!支持framwork4 最新版。 没错!是WeifenLuo.WinFormsUI.Docking.dll 的源代码和示例程序! DockPanel Suite是一个国外开源项目。 项目要引用WeifenLuo.WinFormsUI.Docking.dll,这个程序集包含了控件及相关类。需要在DockPanel控件中显示的子窗体(多标签,停靠,自动隐藏)必须继承自WeifenLuo.WinFormsUI.Docking. DockContent类;DockContent重载了窗体的show方法,所以继承自DockContent的子窗体能把自己以指定方式显示在指定的DockPanel区域内;放置了DockPanel的窗体就为父窗体,需要把父窗体的IsMdiContainer属性设为true。 DockPanel的SaveAsXml方法,能以XML形式,把Panel内所有子窗体的显示状态信息保存至指定的本地文件。DockPanel的LoadFromXml方法,能读取之前保存的子窗体信息,再根据使用者提供的相应处理方法,把子窗体恢复到之前状态
WeifenLuo.WinFormsUI.Docking 停靠窗口、浮动窗口
这是自己在网上down的,不是自己的,分享给大家,呵呵


