バージョン

タブ付き MDI アプリケーションを作成

始める前に

xamDockManager™ でタブ付けされた Multiple Document Interface (MDI) アプリケーションを作成するために新しいオブジェクト モデルを学習する必要はありません。タブ付けされた MDI アプリケーションを作成するために xamDockManager および Microsoft® Windows® Presentation Foundation の既存の知識を活用できます。

達成すること

タブ付けされた MDI アプリケーションを作成するためにコンテンツ ペインおよび DocumentContentHost オブジェクトを使用します。DocumentContentHost オブジェクトの各コンテンツ ペインが個別のタブに表示されます。

次の手順を実行します

  1. xamDockManager コントロールを Window に追加して名前を付けます。

XAML の場合:

<igDock:XamDockManager Name="xamDockManager1">
    <!--TODO: ここに DocumentContentHost を追加します-->
</igDock:XamDockManager>
  1. xamDockManager の Content プロパティを DocumentContentHost のインスタンスに設定します。XAML で Content プロパティのタグを明示的に宣言する必要はありません。

XAML の場合:

<igDock:DocumentContentHost>
    <!--TODO: ここに SplitPane を追加します-->
</igDock:DocumentContentHost>

Visual Basic の場合:

Imports Infragistics.Windows.DockManager
...
Dim documentContentHost1 As New DocumentContentHost()
Me.xamDockManager1.Content = documentContentHost1

C# の場合:

using Infragistics.Windows.DockManager;
...
DocumentContentHost documentContentHost1 = new DocumentContentHost();
this.xamDockManager1.Content = documentContentHost1;
  1. DocumentContentHost オブジェクトの Panes コレクションに SplitPane オブジェクトを追加します。DocumentContentHost オブジェクトの Panes コレクションのタグを明示的に宣言する必要はありません。

XAML の場合:

<igDock:SplitPane>
    <!--TODO: ここに TabGroupPane を追加します-->
</igDock:SplitPane>

Visual Basic の場合:

Dim splitPane1 As New SplitPane()
documentContentHost1.Panes.Add(splitPane1)

C# の場合:

SplitPane splitPane1 = new SplitPane();
documentContentHost1.Panes.Add(splitPane1);
  1. SplitPane オブジェクトの Panes コレクションに TabGroupPane オブジェクトを追加します。SplitPane オブジェクトの Panes コレクションのタグを明示的に宣言する必要はありません。

XAML の場合:

<igDock:TabGroupPane>
    <!--TODO: ここに ContentPanes を追加します-->
</igDock:TabGroupPane>

Visual Basic の場合:

Dim tabGroupPane1 As New TabGroupPane()
splitPane1.Panes.Add(tabGroupPane1)

C# の場合:

TabGroupPane tabGroupPane1 = new TabGroupPane();
splitPane1.Panes.Add(tabGroupPane1);
  1. TabGroupPane オブジェクトの Items コレクションに ContentPane オブジェクトを追加します。TabGroupPane オブジェクトの項目コレクションのタグを明示的に宣言する必要はありません。

DocumentContentHost オブジェクトのコンテンツ ペインは、通常のコンテンツ ペインのように動作します。つまり、エンド ユーザーはランタイムでコンテンツ ペインをドックまたはフローティングすることができます。コンテンツ ペインの AllowDocking プロパティおよび AllowFloatingOnly プロパティを False に設定することで、この動作を制限することができます。

XAML の場合:

<!--各コンテンツ ペインでそれらを設定する代わりに、Style を使用して AllowDocking および AllowFloatingOnly プロパティを設定できます。-->
<igDock:ContentPane Header="Document1.xaml" AllowDocking=" AllowFloatingOnly=">
    <!--TODO: ここでコンテンツを追加します-->
</igDock:ContentPane>

Visual Basic の場合:

Dim contentPane1 As New ContentPane()
contentPane1.Header = "Document1.xaml"
'コンテンツ ペインの AllowDocking および AllowFloatingOnly プロパティを設定するために Style を作成した場合、ここでプロパティを設定する必要はありません。
contentPane1.AllowDocking = False
contentPane1.AllowFloatingOnly = False
tabGroupPane1.Items.Add(contentPane1)

C# の場合:

ContentPane contentPane1 = new ContentPane();
contentPane1.Header = "Document1.xaml";
//コンテンツ ペインの AllowDocking および AllowFloatingOnly プロパティを設定するために Style を作成した場合、ここでプロパティを設定する必要はありません。
contentPane1.AllowDocking = false;
contentPane1.AllowFloatingOnly = false;
tabGroupPane1.Items.Add(contentPane1);
  1. ContentPane の Content プロパティを設定します。ContentPane オブジェクトはコンテンツ コントロールです。したがって、Windows Presentation Foundation のコンテンツ コントロールのように使用できます。

XAML の場合:

<RichTextBox VerticalScrollBarVisibility="Auto" />

Visual Basic の場合:

Dim richTextBox1 As New RichTextBox()
richTextBox1.VerticalScrollBarVisibility = ScrollBarVisibility.Auto
contentPane1.Content = richTextBox1

C# の場合:

RichTextBox richTextBox1 = new RichTextBox();
richTextBox1.VerticalScrollBarVisibility = ScrollBarVisibility.Auto;
contentPane1.Content = richTextBox1;
  1. 第 2 のコンテンツ ペイン (タブ) を DocumentContentHost オブジェクトに動的に追加します。

以下のコード例は、 AddDocument メソッドを呼び出してコンテンツ ペイン (タブ) を追加する方法を示します。AddDocument メソッドの呼び出しは、DocumentContentHost オブジェクトに新しいコンテンツ ペインを動的に追加する便利な方法です。AddDocument メソッドを使用したくない場合、新しい ContentPane オブジェクトをインスタンス化し、それを TabGroupPane オブジェクトの Items コレクションに追加できます。

Visual Basic の場合:

Dim richTextBox2 As New RichTextBox()
richTextBox2.VerticalScrollBarVisibility = ScrollBarVisibility.Auto
Dim contentPane2 As ContentPane = Me.xamDockManager1.AddDocument("Document2.xaml", richTextBox2)
contentPane2.AllowDocking = False
contentPane2.AllowFloatingOnly = False

C# の場合:

RichTextBox richTextBox2 = new RichTextBox();
richTextBox2.VerticalScrollBarVisibility = ScrollBarVisibility.Auto;
ContentPane contentPane2 = this.xamDockManager1.AddDocument("Document2.xaml", richTextBox2);
contentPane2.AllowDocking = false;
contentPane2.AllowFloatingOnly = false;
  1. プロジェクトを実行すると、"Document1.xaml" および "Document2.xaml" という名前の 2 つのタブが表示されます。

xamdockmanager を使用してタブ付き mdi アプリケーションを作成