在專案中使用了WeifenLuo.WinFormsUI.Docking元件,窗體停靠效果非常棒。
現在專案出現了這樣的需求,希望可以控制停靠窗體的寬度,因為預設的寬度往往會造成停靠窗體的內容顯示不完全,降低了使用者體驗。
停靠窗體有兩種狀態,一種是固定停靠顯示,一種是自動隱藏停靠顯示。表現為“自動隱藏”按鈕是否處於按下狀態。
針對這兩種狀態,可以分別設定兩個對應的屬性,即可實現指定停靠窗體寬度的目的。
約定:
mainForm是主窗體,主窗體上放置了一個DockPanel;
dockForm是停靠窗體,停靠在主窗體的右部
即:dockForm.DockArea = DockAreas.DockRight;
一、固定停靠顯示
即:dockForm.DockState = DockState.DockRight;
設定窗體顯示寬度方法如下:
mainForm.DockPanel.DockRightPortion = (double)dockForm.Width / (double)mainForm.DockPanel.Width;
DockRightPortion這個屬性的含義是:右側停靠窗體在固定停靠狀態下,窗體寬度佔停靠皮膚(DockPanel)的比例。
二、自動隱藏停靠顯示
即:dockForm.DockState = DockState.DockRightAutoHide;
設定窗體顯示寬度方法如下:
dockForm.AutoHidePortion = (double)dockForm.Width / (double)mainForm.DockPanel.Width;
AutoHidePortion這個屬性的含義是:右側停靠窗體在自動隱藏停靠狀態下,窗體寬度佔停靠皮膚(DockPanel)的比例。
參考:http://www.cnblogs.com/gaoyunpeng/archive/2010/08/17/1801323.html