xmlns:igDock="http://infragistics.com/DockManager"
Microsoft® Windows® Presentation Foundation の他のコントロールを追加する時と同じように xamDockManager を Window に追加できます。この手順は、Window のメイン コンテンツとしてレイアウト コンテナを使用し、レイアウトコンテナにコントロールを追加することが必要となります。
xamDockManager を Window に追加します。次にペインの組み合わせを使用して xamDockManager の左側にボタンのセットをドックします。最後に、メイン コンテンツ領域でタブ付けされた文書を作成します。
Microsoft® Windows® Presentation Foundation Window プロジェクトを作成します。
以下の NuGet パッケージをアプリケーションに追加します。
Infragistics.WPF.DockManager
NuGet フィードのセットアップと NuGet パッケージの追加の詳細については、NuGet フィード ドキュメントを参照してください。
xamDockManager の名前空間宣言を追加します。
XAML の場合:
xmlns:igDock="http://infragistics.com/DockManager"
Visual Basic の場合:
Imports Infragistics.Windows.DockManager
C# の場合:
using Infragistics.Windows.DockManager;
Window でデフォルトのグリッド レイアウト パネルに名前を付け、コード ビハインドでそれを参照できます。
XAML の場合:
<Grid Name="layoutRoot"> </Grid>
xamDockManager のインスタンスを作成します。xamDockManager コントロール タグ内で Panes コレクションのタグを宣言します。Panes コレクションのすべてのルート レベル ペインは、 SplitPane オブジェクトのインスタンスでなければなりません。
SplitPane オブジェクトを xamDockManager の Panes コレクションに追加します。分割ペインは左から右に子を配置します。SplitterOrientation プロパティを Horizontal に設定することでデフォルト動作を修正できます。SplitterOrientation プロパティを Horizontal に設定すると、ペイン間の垂直分割バーの代わりに水平の分割バーを作成します。その結果、分割ペインは左から右の代わりに上から下に子を配置されます。
ContentPane オブジェクトを SplitPane オブジェクトの Panes コレクションに追加し、ContentPane の Header プロパティを設定します。Panes コレクションのタグを明示的に宣言する必要はありません。
コンテンツを ContentPane オブジェクトを追加します。ひとつの StackPanel と 4 つの Button コントロールをその中に追加します。
xamDockManager コントロール タグ内の DocumentContentHost オブジェクトを追加します。xamDockManager の Panes コレクションの外の DocumentContentHost オブジェクトのタグを宣言する必要があります。DocumentContentHost オブジェクトの詳細については、 xamDockManager についてを参照してください。
DocumentContentHost オブジェクトの Panes コレクションに SplitPane オブジェクトを追加します。DocumentContentHost オブジェクトの Panes コレクションのタグを明示的に宣言する必要はありません。
SplitPane オブジェクトの Panes コレクションに TabGroupPane オブジェクトを追加します。SplitPane オブジェクトの Panes コレクションのタグを明示的に宣言する必要はありません。タブ グループ ペインに追加する各コンテンツ ペインは、Microsoft Visual Studio® のコード ビューまたはデザイン ビューに似たタブ付けされた文書になります。
ContentPane オブジェクトを TabGroupPane オブジェクトの Items collection に追加し、ContentPane オブジェクトの Header プロパティを設定します。TabGroupPane オブジェクトの Items コレクションのタグを明示的に宣言する必要はありません。
RichTextBox コントロールを ContentPane オブジェクトに追加します。
XAML の場合:
<Grid Name="layoutRoot"> <igDock:XamDockManager Name="xamDockManager1"> <!--Panes コレクションのタグを宣言します--> <igDock:XamDockManager.Panes> <!--SplitPanes を追加します--> <igDock:SplitPane> <!--ペインを追加します--> <igDock:ContentPane Header="Pane 1"> <!--コンテンツを追加します--> <StackPanel> <Button Content="Button 1" /> <Button Content="Button 2" /> <Button Content="Button 3" /> <Button Content="Button 4" /> </StackPanel> </igDock:ContentPane> </igDock:SplitPane> </igDock:XamDockManager.Panes> <!--Adding a layout container or a DocumentContentHost--> <igDock:DocumentContentHost> <!--Adding a SplitPane--> <igDock:SplitPane> <!--Adding a TabGroupPane--> <igDock:TabGroupPane> <!--Adding ContentPanes--> <igDock:ContentPane Header="Document1.xaml"> <!--TODO: Add content here--> <RichTextBox VerticalScrollBarVisibility="Auto" /> </igDock:ContentPane> </igDock:TabGroupPane> </igDock:SplitPane> </igDock:DocumentContentHost> </igDock:XamDockManager> </Grid>
Visual Basic の場合:
Private Sub Window_Loaded(ByVal sender As Object, ByVal e As EventArgs) Private xamDockManager1 As XamDockManager xamDockManager1 = New XamDockManager() xamDockManager の Panes コレクションに SplitPanes を追加します Dim splitPane1 As New SplitPane() xamDockManager1.Panes.Add(splitPane1) Dim contentPane1 as New ContentPane() contentPane1.Header = "Pane 1" splitPane1.Panes.Add(contentPane1) Dim stackPanel1 As New StackPanel() contentPane1.Content = stackPanel1 For i As Integer = 1 To 4 Dim b As New Button() b.Content = "Button " + i.ToString() stackPanel1.Children.Add(b) Next ' xamDockManager の Content プロパティを DocumentContentHost のインスタンスに設定します Dim documentContentHost1 As New DocumentContentHost() xamDockManager1.Content = documentContentHost1 Dim splitPane2 As New SplitPane() documentContentHost1.Panes.Add(splitPane2) Dim tabGroupPane1 As New TabGroupPane() splitPane2.Panes.Add(tabGroupPane1) Dim contentPane2 As New ContentPane() contentPane2.Header = "Document1.xaml" tabGroupPane1.Items.Add(contentPane2) Dim richTextBox1 As New RichTextBox() contentPane2.Content = richTextBox1 ' xamDockManager をレイアウト コンテナーの Children コレクションに追加します Me.layoutRoot.Children.Add(xamDockManager1) End Sub
C# の場合:
private void Window_Loaded(object sender, EventArgs e) { private XamDockManager xamDockManager1; xamDockManager1 = new XamDockManager(); // xamDockManager の Panes コレクションに SplitPanes を追加します SplitPane splitPane1 = new SplitPane(); xamDockManager1.Panes.Add(splitPane1); ContentPane contentPane1 = new ContentPane(); contentPane1.Header = "Pane 1"; splitPane1.Panes.Add(contentPane1); StackPanel stackPanel1 = new StackPanel(); contentPane1.Content = stackPanel1; for (int i = 1; i < 5; i++) { Button b = new Button(); b.Content = "Button " + i.ToString(); stackPanel1.Children.Add(b); } // xamDockManager の Content プロパティを DocumentContentHost のインスタンスに設定します DocumentContentHost documentContentHost1 = new DocumentContentHost(); xamDockManager1.Content = documentContentHost1; SplitPane splitPane2 = new SplitPane(); documentContentHost1.Panes.Add(splitPane2); TabGroupPane tabGroupPane1 = new TabGroupPane(); splitPane2.Panes.Add(tabGroupPane1); ContentPane contentPane2 = new ContentPane(); contentPane2.Header = "Document1.xaml"; tabGroupPane1.Items.Add(contentPane2); RichTextBox richTextBox1 = new RichTextBox(); contentPane2.Content = richTextBox1; // xamDockManager をレイアウト コンテナーの Children コレクションに追加します this.layoutRoot.Children.Add(xamDockManager1); }
プロジェクトを実行すると、アプリケーションの左側に 4 つのボタンがドックされ、"Document1.xaml" という名前のタブ付けされた文書が表示されます。