C#のDockPanelSuiteでドッキングウインドウを作る

DockPanel Suiteというライブラリを使うと簡単にドッキングウインドウのアプリケーションがつくれるようなので試してみます。 

導入の手順

DockPanel Suiteを入手する

 

以下のサイトからライブラリをダウンロードする。

ダウンロードしたファイルは適当な場所へコピーする。

http://dockpanelsuite.com/

 

ライセンスは「MIT License」で提供されているので、商用でも利用可能。

但し、著作権表示と許諾表示をソフトウェアの中で記載する必要がある。

Visual Studioのツールボックスに追加する

ツールボックスのウィンドウで右クリックして[アイテムの選択(I)...]を選択。


[.NET Frameworkコンポーネント]タブの[参照(B)...]ボタンから、上記でダウンロードした「WeifenLuo.WinFormsUI.Docking.dll」を選択すると・・・

ツールボックスに「DockPanel」が追加される。

アプリケーションを作る

親ウィンドウ(ドッキングされる側)

 

フォームのデザイン画面を開き、ツールボックスから[DockPanel]コントロール選らんで、

フォームへ張り付ける。

 

DockPanelのプロパティ

Dock [Fill]を指定するとコントロールがフォーム全体に張り付く
DocumentStyle 

[DockingWindow] 

[DockingMdi]

[DockingSdi]

[SystemMdi]

子ウィンドウ(ドッキングする側)

 

メニューから[プロジェクト(P)]→[新しい項目の追加(W)...]を選択。

左側ツリー[Windows Forms]カテゴリにある[継承されたフォーム]を選らんで[追加(A)]。

 

[継承ピッカー]画面で[参照(B)...]ボタンから「WeifenLuo.WinFormsUI.Docking.dll」を選ぶと、

リストにコンポーネントが追加されるので、[DockContent]を選んで[OK]。

 

DockContentのプロパティ

ShowHint
最初に表示された時のドッキング位置を指定できる
DockAreas

ドッキング可能な場所を指定できる

サンプルコード

    // 子ウィンドウ
    public partial class FormSub : WeifenLuo.WinFormsUI.Docking.DockContent
    {
        public FormSubMap()
        {
            InitializeComponent();
        }
    }


    // 親ウィンドウ
    public partial class FormMain : Form
    {
        private FormSub m_FormSub;

        public FormMain()
        {
            InitializeComponent();

            m_FormSub = new FormSub();
            // ShowメソッドにドッキングされるDockPanelを渡す
            m_FormSub.Show(m_CtrlDockPanel);
        }
    }