1

DockPanel Suiteを使用していますが、ドキュメントが比較的少ないために問題が発生しました。

「サイド」と呼ばれる左右にドッキングするパネルと、「ボトム」と呼ばれる下部にドッキングするパネルの 2 つのドッキングされたパネルがあります。Side でフォームの高さを埋め、Bottom で残りを埋めたいと思います。

だから私が目指しているのはこれです: サイドドックフィル

しかし、私が代わりに持っているのはこれです: ボトムドックフィル

プログラムを実行すると、2 番目のバリアントが得られます。Bottom をドラッグしてフロートさせてからドラッグすると、希望どおりにドッキングされますが、プログラムでこれを実現することはできません。

これが私のコードです:

public Form1()
{
    InitializeComponent();

    SideForm side = new SideForm();
    side.Show(dockPanel, DockState.DockRight);

    BottomForm bottom = new BottomForm();
    bottom.Show(dockPanel, DockState.DockBottom);
}

順序を変更してみましたが、効果がありません。さまざまなプロパティとメソッドを調べてみましたが、ドキュメントがあまりないため、ここでは IntelliSense はあまり役に立ちません。

アップデート

2 人が提案したように、サイド パネルを前面に移動したり、ボトム パネルを背面に移動したりしてみましたが、効果はありませんでした。そのための完全なコードは次のとおりです。

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に設定することでこれを回避できます。これにより、次のようになります。

タブ

しかし、それらのタブはそこにありますが、これは望ましくありません。DockingSdi私はスタイルを使用することを好みます。

だから、私は次のようにプログラムで一番下までドッキングを達成しようとしています: ドックの場所を表示しています... ドッキング開始

そして最後に、ドッキングされたウィンドウ ドッキング

4

2 に答える 2

3

念のため: ドッキングの優先度を変更するには、DockWindow の Z オーダーをカスタマイズする必要があります。これを置きます:

dockPanel.UpdateDockWindowZOrder(DockStyle.Right, true);

InitializeComponent() と子フォームの作成/ドッキングの間。

于 2016-09-14T13:30:33.393 に答える