WeifenLuo元件中如何設定停靠窗體的寬度

Old發表於2013-08-16

在專案中使用了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

相關文章