DockingManager的使用入门

今天在做winForm开发的时候,突然觉得这个界面怎么看怎么不爽,于是就Google了下,发现有个叫MagicDocking的个东西,下回来,自己折腾折腾

开打它的示例文件,发现,哇,这家伙谁写的哦,这么乱,完全不是VS的样子么,呼,好不容易找到了一点点实现的办法,

首先,自然是要引用dll啦,右击项目->添加引用->浏览->找到magicDocking.dll;

然后,需要在form中添加引用

 
  
using Crownwood.DotNetMagic.Common;
using Crownwood.DotNetMagic.Controls;
using Crownwood.DotNetMagic.Docking;
using Crownwood.DotNetMagic.Forms;

 

引用都完成后,从他的demo中复制了一段,dockingManage,Content 都有啊,也有实例化,最后也 dockManager.AddContentWithState了呀,为什么就是不显示在窗体呢?我也奇怪,为什么它的demo中也没有写把上面的哪个添加进form中哦,为什么它的能显示呢?我的就不能,最后,没办法,下杀手锏咯,右键变量->查找所有引用->一条一条的过了一边,最后,终于在demo的一大串连续的代码中找到了它,dockingManage中对this的指定,也就是说,dockingManage的实例化时的第一个参数:scrollableContorl,容器控件,而在它的demo中,是添加在了另一个容器中,然后再把另一个容器用Controls.Add()进了Form;

最后整理出来的代码;

 

ContractedBlock.gif ExpandedBlockStart.gif 代码
 
   
public FormDock()
{
InitializeComponent();
DockingManager dockManager;
// 定义dockManager
dockManager = new DockingManager( this , VisualStyle.Office2007Silver); // 实例化dockManager并制定容器为this,央视为office2007Silver
Content testContent = new Content(dockManager); // 他就是停靠的那个控件的容器
testContent.Control = new MonthCalendar(); // 在该容器中添加一个控件,这里为 MonthCalendar;
testContent.Title = " test1 " ; // 为容器命名-标题
testContent.FullTitle = " test1-test " ; // 为容器命名-完整标题
testContent.AutoHideSize = testContent.Control.Size; // 设置自动缩小时的size

dockManager.Contents.Add(testContent);
// 把它添加进dockManager
dockManager.AddContentWithState(testContent, State.DockRight); // 最后显示界面,停靠位置为 right


}

 

这样就完成了停靠窗体的实现过程,关键就是在于,需要一个停靠控件,就要实例化一个Content,并指定内容,最后添加进dockManage,而dockManage需要制定一个容易来放它自己。这样想把什么放在停靠窗体里面,就在testContent.Control 后面 new一个进去。

而对于其他控件的使用,我们可以查看它的demo有些可以直接添加到“工具箱”的-->“工具箱”-->“选择项”-->“找到manageDocking.dll”

OVER~~~~~~~`

 

 

转载于:https://www.cnblogs.com/lingfengchencn/archive/2010/07/06/1772523.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
AvalonDock是一个流行的开源WPF控件库,它提供了多个窗口管理和布局工具,可以让您轻松地创建像Visual Studio一样的界面。以下是实现AvalonDock效果的一些步骤: 1. 下载和安装AvalonDock NuGet包。在Visual Studio中,右键单击项目,选择“管理NuGet程序包”,搜索“AvalonDock”并安装。 2. 在XAML中添加AvalonDock命名空间,例如: ``` xmlns:ad="http://avalondock.codeplex.com" ``` 3. 添加一个 DockingManager 控件,作为主窗口的容器。例如: ``` <ad:DockingManager x:Name="dockManager"> </ad:DockingManager> ``` 4. 添加一个 DocumentPane 控件,作为文档窗口的容器。例如: ``` <ad:DockingManager x:Name="dockManager"> <ad:DocumentPane x:Name="documentPane"> </ad:DocumentPane> </ad:DockingManager> ``` 5. 在代码中创建新的DocumentContent对象,并添加到DocumentPane中。例如: ``` var newDocument = new DocumentContent(); newDocument.Title = "New Document"; documentPane.Children.Add(newDocument); ``` 6. 可以使用其他控件,如ToolWindow,来创建工具窗口。例如: ``` <ad:DockingManager x:Name="dockManager"> <ad:DocumentPane x:Name="documentPane"> </ad:DocumentPane> <ad:ToolWindow x:Name="toolWindow"> <Button Content="Tool Window Button"/> </ad:ToolWindow> </ad:DockingManager> ``` 7. 在代码中设置DocumentContent和ToolWindow的属性,如标题和内容。例如: ``` newDocument.Title = "New Document"; newDocument.Content = new TextBox(); toolWindow.Title = "Tool Window"; toolWindow.Content = new Button() { Content = "Tool Window Button" }; ``` 8. 可以使用布局配置文件来保存和加载AvalonDock布局。例如: ``` var layoutSerializer = new XmlLayoutSerializer(dockManager); layoutSerializer.Serialize("layout.xml"); layoutSerializer.Deserialize("layout.xml"); ``` 以上是实现AvalonDock效果的基本步骤,您可以根据自己的需要进行更改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值