C#中使用WeiFenLuo.WinFormsUI.Docking.dll實現窗口停靠效果


很酷的效果,很值得好好去學習的哈。

重置工具箱:

新建一個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就可以了。效果圖如下所示;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM