ウィンドウのサイズやドッキング位置のレイアウト情報をXMLファイルで保存し、次回の起動時に復元することができます。
DockPanelクラスのSaveAsXmlメソッドで書き込みます。
public void SaveAsXml(
string filename // ファイル名
);
ファイルへの保存時には、複数のウィンドウを一意に識別するために、個々のウィンドウにはそのクラス名と同一の名称が付けられます。しかしGetPersistStringメソッドをオーバーライドすることで、これを任意の名称に変更できます。
これはDockContentを継承したフォーム内で定義します。
protected override string GetPersistString()
{
return "DockingWindowName1";
}
DockPanelクラスのLoadFromXmlメソッドで読み込みます。引数でファイル名と、読み込み対象となるウィンドウを特定するためのメソッドを指定します。
public void LoadFromXml(
string filename, // ファイル名
DeserializeDockContent deserializeContent //
);
using WeifenLuo.WinFormsUI.Docking;
void Foo()
{
DeserializeDockContent deserializeDockContent
= new DeserializeDockContent( GetDockContentFromPersistString );
this.dockPanel.LoadFromXml( FileName, deserializeDockContent );
}
// ウィンドウの名称に対応するDockContentを返す
IDockContent GetDockContentFromPersistString( string persistString )
{
switch( persistString )
{
case "DockingWindowName1": // GetPersistStringメソッドが返すウィンドウ名称
return this.dockingWindow1;
case "DockingWindowName2":
return this.dockingWindow2;
}
return null;
}