控件"WeifenLuo.WinFormsUI.Docking"的使用--如何控制自动停靠窗口的大小问题

覃祖甘 覃祖甘 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
在使用这个控件的时候,估计大家都会碰到 这样一个问题,就是当窗口是自动隐藏的时候,好像出来的大小一般比实际的大,感觉不太美观,所以我想办法控制这个部局大小。

如果在程序使用过程中,操作人改变了布局样式,且想以后都继续保持那样的样式,用到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"是一个非常棒的开源控件,用过的人都深有体会,该控件之强大、美观、不亚于商业控件。而且控件使用也是比较简单的。

jxcclij

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方面的文章主要还是园子里伍华聪的博客,在看看我们自己写的项目差不忍赌啊,有想着提炼一下项目的公共部分,公共部分有分为 界面,类库两方面,今天主要是把界面也先提炼提炼。

luomingui

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的,不是自己的,分享给大家,呵呵

Jonney-Wang
评论 2
收藏 已收藏
分享
返回顶部
覃祖甘
C# 111,128 成员 642,536 内容