WeiFenLuo.WinFormsUI.Docking.dll是開源項目DockPanel Suite的一個類庫,可實現像Visual Studio的窗口停靠、拖拽等功能。WeifenLuo.WinFormsUI.Docking是一個很強大的界面布局控件,可以保存自定義的布局為XML文件,可以加載XML配置文件。DockPanel中提供了幾個可用的類,重要的有兩個:DockPanel和DockContent。DockPanel是從Panel繼承出來的,用於為可浮動的dock的子窗口提供進行浮動和dock的場所;DockContent是從Form類中繼承出來的,用於提供可浮動的窗口基類。也就是說,DockContent對象可以在DockPanel對象中任意貼邊、浮動、TAB化等。
1、新建WinForm窗體
2、修改WinForm窗體屬性,設置其為MDI窗體(多文檔窗體)
this.IsMdiContainer = true; this.Name = "MainForm"; this.Text = "MainForm";
3、為MainForm窗體添加菜單欄
4、解決方案管理器-->添加引用-->瀏覽-->WeifenLuo.WinFormsUI.Docking.dll
5、工具箱-->選擇項...-->.Net Framework組件-->瀏覽-->WeifenLuo.WinFormsUI.Docking.dll
6、拖動工具箱中的DockPanel控件到MainForm窗體,拖動時如出現如下錯誤:
則 項目屬性對話框-->應用程序-->目標框架-->.Net Framework 4,即可解決。
當主窗體需要使用工具欄和狀態欄時,需要特別注意控件的放置順序,確保DockPanel控件是最后一個放上去的控件,否則可能出現局部顯示效果有誤的情況。
7、設置DockPanel控件Dock屬性為Fill
this.dockPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
8、添加兩個WinForm窗體,分別為DockPanelFormMain和DockPanelFormSide,在窗體的代碼中修改兩窗體均繼承自DockContent,並修改其FormBorderStyle屬性為Fixed3D,設置DockPanelFormMain的BackColor屬性為White;
9、在MainForm的Load事件中添加如下代碼:
DockPanelFormMain dockPanelMain1 = new DockPanelFormMain(); dockPanelMain1.Show(this.dockPanel1); dockPanelMain1.Text = "MainPanel1"; DockPanelFormMain dockPanelMain2 = new DockPanelFormMain(); dockPanelMain2.Show(this.dockPanel1); dockPanelMain2.Text = "MainPanel2"; DockPanelFormSide dockPanelSideLeft = new DockPanelFormSide(); dockPanelSideLeft.Show(this.dockPanel1, WeifenLuo.WinFormsUI.Docking.DockState.DockLeft); dockPanelSideLeft.Text = "DockPanelLeft"; DockPanelFormSide dockPanelSideRight = new DockPanelFormSide(); dockPanelSideRight.Show(this.dockPanel1, WeifenLuo.WinFormsUI.Docking.DockState.DockRight); dockPanelSideRight.Text = "DockPanelRight"; DockPanelFormSide dockPanelSideBottom = new DockPanelFormSide(); dockPanelSideBottom.Show(this.dockPanel1, WeifenLuo.WinFormsUI.Docking.DockState.DockBottom); dockPanelSideBottom.Text = "DockPanelBottom";
10、程序運行效果如下所示:
參考鏈接:http://www.cnblogs.com/because/archive/2011/12/24/2300316.html
DockPanel Suite相關鏈接: