2

ドック パネルを既存のドック パネルにドッキングしようとしています。

私の現在のレイアウトは次のとおりです。ウィンドウの左側には、設定ドック パネルがあります。右側には別のドック パネルがあります。右側のドック パネルがウィンドウの大部分を占めています。左側のドック パネルには、(コントロールなど) を操作すると、右側のドック パネルに表示される内容に影響を与えるアイテムが含まれています。

新しい左側のドック パネルを動的に追加する必要があります。最初のものは、設定ドック パネルの下部にドッキングする必要があります。2 番目のものは最初のものにドッキングする必要があります。

必要に応じて、最初の新しいドック パネルを設定ドック パネルにドッキングできます。ただし、後続のドッキング パネルは前のパネルの下部にドッキングしません。代わりに、前のものの右側にドッキングし、#1 を列に強制します。これが私のコードです:

       // Add a new dock panel
        DockPanel dockPanel = dockManager1.AddPanel(DockingStyle.Top);

        // Dock the panel to the previous panel
        if (mLeftSidePanels.Count == 0)
            dockPanel.DockTo(dockPanelSettings);
        else
            dockPanel.DockTo(mLeftSidePanels[mLeftSidePanels.Count - 1].DockPanel);

        // Add the left side dock panel to our collection
        mLeftSidePanels.Add(dockpanel);
4

1 に答える 1

2

次のアプローチを試してください。

IList<DockPanel> mLeftSidePanels = new List<DockPanel>();
//...
void addNewPanelButton_Click(object sender, EventArgs e) {
    dockManager1.BeginUpdate();

    DockPanel dockPanel = dockManager1.AddPanel(DockingStyle.Top);
    // Dock the panel to the previous panel
    if(mLeftSidePanels.Count == 0)
        dockPanel.DockTo(dockPanelSettings);
    else {
        // add to parent split container
        dockPanel.DockTo(dockPanelSettings.ParentPanel);
    }
    mLeftSidePanels.Add(dockPanel);

    dockManager1.EndUpdate();
}
于 2013-01-28T07:40:03.873 に答える