ドッキングされる側のパネル DockPanel

DockPanelの構造

DockPanelはドッキング ウィンドウのコンテナとなるコントロールであり、次の5つのDockWindowに分割されます。

  1. top
  2. bottom
  3. left
  4. right
  5. document

DockPanelの親フォームへの配置

ドッキング ウィンドウを使用するには、それをドッキングさせるためのパネル (DockPanel) を、親となるフォーム上に配置する必要があります。

コードから

DockPanelのインスタンスを作成し、それを親フォームのコントロールのコレクションに追加します。

public partial class Form1 : Form
{
    private WeifenLuo.WinFormsUI.Docking.DockPanel dockPanel;

    public Form1()
    {
        InitializeComponent();

        this.dockPanel = new WeifenLuo.WinFormsUI.Docking.DockPanel();
        this.dockPanel.Dock = System.Windows.Forms.DockStyle.Fill;
        this.dockPanel.DocumentStyle = WeifenLuo.WinFormsUI.Docking.DocumentStyle.DockingWindow;

        this.Controls.Add(this.dockPanel);
    }
}

これをVisual Studioのデザイナで管理するには、とりあえずPanelコンポーネントを親フォーム上に配置し、型をPanelから[WeifenLuo.WinFormsUI.Docking.DockPanel]へ変更する方法もあります。

Visual Studioのデザイナから

Visual Studioのビュー デザイナで操作するには、まずDockPanelをツールボックスに追加する必要があります。

DockPanelコンポーネントのツールボックスへの登録

ツールボックスへ追加するには、[ツールボックス]ウィンドウのコンテキストメニューから[アイテムの選択]をクリックします。そして[.NET Framework コンポーネント]タブの[参照]ボタンから、ライブラリのファイルを選択します。

「WeifenLuo.WinFormsUI.Docking.dll」ファイルを開きます。

ツールボックスにDockPanelが追加されます。

フォームへの配置

ツールボックスに追加されたDockPanelコンポーネントを、フォーム上に配置します。

プロパティ

プロパティ 内容
bool AllowEndUserDocking trueならば、ユーザーはレイアウトを変更できる。既定はtrue How to Lock Layout and Prevent Dock Panels From Moving - Basic Usages — dockpanelsuite 3.1 documentation
bool AllowEndUserNestedDocking  
DocumentStyle DocumentStyle パネルの表示スタイル
DocumentTabStripLocation DocumentTabStripLocation  
bool ShowAutoHideContentOnHover  
bool ShowDocumentIcon trueならば、ドキュメント ウィンドウ (DockState.Document) のタブにアイコンを表示する (それ以外のタブのアイコンは、テーマから修正する)
DockPanelSkin Skin  
ThemeBase Theme  
DockContentCollection Contents IDockContentフォームのコレクション。これには所有するドッキング ウィンドウのリストが含まれる
IEnumerable<IDockContent> Documents Contentsプロパティの中で、DockStateがDocumentであるウィンドウのコレクション
DockPaneCollection Panes DockPaneウィンドウのコレクション (DockPaneクラスとは、タブ表示されたDockContentのコレクションを有するクラス)
FloatWindowCollection FloatWindows DockStateがFloatであるウィンドウのコレクション
int DocumentsCount Documentsプロパティのコレクションの数
IDockContent ActiveContent 現在アクティブなIDockContent
IDockContent ActiveDocument 現在アクティブなDocumentであるIDockContent
DockPane ActivePane 現在アクティブなDockPane
   
プロパティ 内容
double DockTopPortion 上側のDockWindowのサイズ。0.0~1.0の間
double DockBottomPortion 下側のDockWindowのサイズ
double DockLeftPortion 左側のDockWindowのサイズ
double DockRightPortion 右側のDockWindowのサイズ

基本的な設定は、プロパティ ウィンドウから行えます。

パネルの表示スタイル

パネルの表示スタイルはDocumentStyleプロパティで設定します。

DocumentStyle 列挙型
注釈 DockState
Document Float
SystemMdi DockPanelはMDIの子コントロールである必要がある※1
DockingMdi
DockingWindow  
DockingSdi Document形式のウィンドウが1つしかない場合には、タブが表示されない※2
※1 子コントロールではないと「Invalid parent form. When using DockingMdi or SystemMdi document style, the DockPanel control must be the child control of the main MDI container form.」としてInvalidOperationExceptionが投げられる ※2 パネルが1つのときはタブが表示されないため、ドラッグによる移動ができない

ドッキングするウィンドウの既定サイズ

ドッキングするウィンドウの既定のサイズは、次のプロパティで設定します。

  • DockLeftPortion
  • DockRightPortion
  • DockTopPortion
  • DockBottomPortion

これらには0.0~1.0の範囲で、DockPanelのサイズに対する割合で指定します。