很酷的效果,很值得好好去學習的哈。
重置工具箱:
新建一個WinForm程序,項目名稱為TestDockPanelControl。選中Form1窗體后選擇工具箱--->>新建個添加選項卡命名為WeiFenLuo--->>右鍵--->>選擇項--->>瀏覽---
>>weiFenLuo.winFormsUI.Docking.dll--->>確定.此時工具箱出現DockPanel控件。這以上步驟僅是把DockPanel控件添加到工具箱中。
接下來看看DockPanel控件的停靠效果是如何實現的。
主窗體設置:(Form1窗體默認是主窗體)
Form1窗體的屬性設置
在原有的Form1窗體上設置窗體的Text屬性為主窗體,IsMdiContainer屬性為true也就是設置為MDI程序(為了體驗DockPanel控件的演示效果)。FormBorderStyle設置為
FixedSingle,StartPosition設置為CenterScreen,WindowState設置為Maximized。
Form1窗體的控件布局
將工具箱下的MenuStrip控件和DockPanel控件拖放到窗體上,設置DockPanel控件的Dock屬性為Fill.設置MenuStrip的子菜單選項設置值如下圖所示:
停靠窗體設置(FormDock為子窗體):
添加一個新的WinForm窗體命名為FormDock,設置Text值為停靠窗體,Size值為207,382此處值可以根據實際的需要情況而定並非唯一。
主要點:在代碼中修改窗體繼承於DockContent,要添加using WeifenLuo.WinFormsUI.Docking命名空間
修改前代碼:
public partial class FormDock :Form { public FormDock() { InitializeComponent(); } }
修改后代碼:
public partial class FormDock :DockContent { public FormDock() { InitializeComponent(); } }
回到主窗體Form1窗體,在Form1窗體中顯示要停靠的窗體(FormDock)
代碼如下:
//底部 private void bottomToolStripMenuItem_Click(object sender, EventArgs e) { FormDock frm = new FormDock(); frm.Text = "底部停靠"; frm.Show(this.dockPanel1); frm.DockTo(this.dockPanel1, DockStyle.Bottom); } //全屏 private void fillToolStripMenuItem_Click(object sender, EventArgs e) { FormDock frm = new FormDock(); frm.Text = "全屏停靠"; frm.Show(this.dockPanel1); frm.DockTo(this.dockPanel1, DockStyle.Fill); } //左側 private void leftToolStripMenuItem_Click(object sender, EventArgs e) { FormDock frm = new FormDock(); frm.Text = "左側停靠"; frm.Show(this.dockPanel1); frm.DockTo(this.dockPanel1, DockStyle.Left); } //None private void noneToolStripMenuItem_Click(object sender, EventArgs e) { FormDock frm = new FormDock(); frm.Text = "NONE"; frm.Show(this.dockPanel1); frm.DockTo(this.dockPanel1, DockStyle.None); } //右側 private void rightToolStripMenuItem_Click(object sender, EventArgs e) { FormDock frm = new FormDock(); frm.Text = "右側停靠"; frm.Show(this.dockPanel1); frm.DockTo(this.dockPanel1, DockStyle.Right); } //頂部 private void topToolStripMenuItem_Click(object sender, EventArgs e) { FormDock frm = new FormDock(); frm.Text = "頂部停靠"; frm.Show(this.dockPanel1); frm.DockTo(this.dockPanel1, DockStyle.Top); }
以上的就是用DockPanel控件來使窗體進行停靠的整個操作。
效果圖如下所示:
DockPanel控件還可以拖放子窗體,可以把子窗體拖放到上左中右下等位置
只要把DockPanel控件的的AllowDrop設置為true就可以了。效果圖如下所示;