2012-05-28 21 views
1

我正在嘗試使用Devexpress Docking Manager和可停靠面板將三個面板添加到窗口。以下是目前的結果:在DevExpress Docking Panels中調整內容大小

enter image description here

三個板放置和尺寸如何我想他們不過它們的內容將無法正常調整,因爲我調整窗口的大小。此第一張圖片顯示未能填滿窗口的Picturebox。我現在試圖規範是這樣的:(·Panel3中是指包含pictureBox1這又是DP3包含面板。)

void dp3_SizeChanged(object sender, EventArgs e) 
    { 
    panel3.Size = panel3.Parent.Size; 
    pictureBox1.Width = dp3.Width; 
    pictureBox1.Height = dp3.Height; 
    } 

同樣是爲控制窗口如此。除非窗口嚴重過大,否則我的控件不會出現。

enter image description here

的控件被包含在本身被包含在可固定窗口4個單獨面板。

我該如何讓事情看起來正確的大小和位置whendocking和調整大小?

回答

3

轉到throught這DevX文章 - Designing Resizable Windows Forms in Visual Studio .NET - 2, 我最喜歡約在Winforms佈局的理解。

您應該在窗體中的控件上設置AnchorDock屬性。

Anchor屬性控制控件的哪些邊「綁定」或「綁定」到其窗體的相應邊。
例如,如果將Anchor設置爲Bottom,則控件底邊與其父項底部之間的距離不會更改,因此在調整窗體大小時控件將向下移動。
如果將Anchor設置爲Top | Bottom,則在調整窗體大小時,控件將垂直調整大小。

若要使用窗體進行控件大小調整,請將Anchor設置爲全部四條邊,或將Dock設置爲Fill

您可以將控件的Dock屬性設置爲Fill。這將導致控件填充它的父容器。

您可能仍然需要編寫一些代碼來處理子控件的佈局。您可以通過處理Resize事件或使用支持爲您調整大小的容器(例如FlowLayoutPanelTableLayoutPanel)來完成此操作。

使用您的控件的Anchor屬性。你可能需要將其設置爲四面八方,Top, Bottom, Left, Right,如果你想讓它按照四個方向父控件調整


如果你想Maintain the controls Aspect Ratio on Resize,你需要存儲關閉寬高比無論如何,無論是在設計時你知道的東西,還是你只是想在InitializeComponent()之後的表單的構造函數中計算它。在您的表單的Resize事件中,