[英]Set vertical dock priority over horizontal with DockPanel Suite
我正在使用DockPanel Suite,但由於文檔相對稀疏,因此遇到了問題。
我有兩個停靠的面板:一個停靠在左側和右邊,稱為“側面”,另一個停靠在底部,稱為“底部”。 我希望Side填寫表格的高度,Bottom填寫其余部分。
所以我的目標是:
但是我所擁有的是:
運行程序時,我得到第二個變體,如果我將Bottom拖出以使其浮動,然后將其拖回,它將以我想要的方式停靠,但是我無法以編程方式實現。
這是我的代碼:
public Form1()
{
InitializeComponent();
SideForm side = new SideForm();
side.Show(dockPanel, DockState.DockRight);
BottomForm bottom = new BottomForm();
bottom.Show(dockPanel, DockState.DockBottom);
}
我嘗試過更改順序,但這沒有效果。 我曾嘗試研究各種屬性和方法,但是沒有太多文檔,因此IntelliSense在這里沒有太大幫助。
我嘗試按照兩個人的建議將側面板放在前面和/或將底部面板放在后面,但這沒有任何效果。 這是完整的代碼:
public Form1()
{
InitializeComponent();
SideForm side = new SideForm();
side.Show(dockPanel, DockState.DockRight);
BottomForm bottom = new BottomForm();
bottom.Show(dockPanel, DockState.DockBottom);
// I've tried enabling these one at a time, and even both at once, no effect
side.BringToFront();
bottom.SendToBack();
}
用戶Lex Li提出了另一個建議,即首先創建一個文檔,然后停靠在其底部。 這似乎行得通,但是現在底部窗口中沒有,如下所示:
這是我用來創建此代碼的代碼:
doc = new Document();
doc.Show(dockPanel, DockState.Document);
side = new SideForm();
side.Show(dockPanel, DockState.DockRight);
bottom = new BottomForm();
bottom.Show(doc.Pane, DockAlignment.Bottom, 0.3);
通過將主擴展面板的DocumentStyle
屬性設置為DockingMdi
或DockingWindow
, DockingWindow
這種情況:
但是這些標簽在那里,我不想要。 我更喜歡使用DockingSdi
樣式。
因此,我正在嘗試以編程方式實現對接的最底層,如下所示:顯示基座的位置...
最后,停靠的窗口
僅作記錄:要更改停靠優先級,您需要自定義DockWindow的Z順序。 放置:
dockPanel.UpdateDockWindowZOrder(DockStyle.Right, true);
在InitializeComponent()和子窗體的創建/停靠之間。
您是否嘗試過使用Control.BringToFrom()和/或control.SendToBack()?
SideForm side = new SideForm();
side.Show(dockPanel, DockState.DockRight);
BottomForm bottom = new BottomForm();
bottom.Show(dockPanel, DockState.DockBottom);
side.BringToFrom();
要么
bottom.SendToBack();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.