簡體   English   中英

使用DockPanel Suite設置垂直碼頭優先於水平碼頭

[英]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屬性設置為DockingMdiDockingWindowDockingWindow這種情況:

標簽

但是這些標簽在那里,我不想要。 我更喜歡使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM