Loading...
Loading...
Implement Syncfusion WPF DocumentContainer (Tabbed MDI Form) control for creating MDI and TDI interfaces. Use this skill when working with DocumentContainer, Multiple Document Interface (MDI), Tabbed Document Interface (TDI), or Visual Studio-style document management. Covers document windows, tab groups, window switchers, state persistence for document layouts, and dockable document windows in WPF applications.
npx skill4agent add syncfusion/wpf-ui-components-skills syncfusion-wpf-tabbed-mdi-form<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:syncfusion="http://schemas.syncfusion.com/wpf"
Title="DocumentContainer Demo" Height="600" Width="800">
<Grid>
<!-- DocumentContainer in TDI mode -->
<syncfusion:DocumentContainer x:Name="documentContainer" Mode="TDI">
<!-- Document 1 -->
<FlowDocumentScrollViewer syncfusion:DocumentContainer.Header="Document 1">
<FlowDocument>
<Paragraph>Content of Document 1</Paragraph>
</FlowDocument>
</FlowDocumentScrollViewer>
<!-- Document 2 -->
<FlowDocumentScrollViewer syncfusion:DocumentContainer.Header="Document 2">
<FlowDocument>
<Paragraph>Content of Document 2</Paragraph>
</FlowDocument>
</FlowDocumentScrollViewer>
<!-- Document 3 -->
<FlowDocumentScrollViewer syncfusion:DocumentContainer.Header="Document 3">
<FlowDocument>
<Paragraph>Content of Document 3</Paragraph>
</FlowDocument>
</FlowDocumentScrollViewer>
</syncfusion:DocumentContainer>
</Grid>
</Window>using Syncfusion.Windows.Tools.Controls;
using System.Windows;
using System.Windows.Controls;
namespace DocumentContainerDemo
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
// Create DocumentContainer in MDI mode
DocumentContainer documentContainer = new DocumentContainer();
documentContainer.Mode = DocumentContainerMode.MDI;
documentContainer.SwitchMode = SwitchMode.VS2005;
// Add document windows
Button doc1 = new Button { Content = "Document 1 Content" };
Button doc2 = new Button { Content = "Document 2 Content" };
Button doc3 = new Button { Content = "Document 3 Content" };
// Set headers
DocumentContainer.SetHeader(doc1, "Document 1");
DocumentContainer.SetHeader(doc2, "Document 2");
DocumentContainer.SetHeader(doc3, "Document 3");
// Add to container
documentContainer.Items.Add(doc1);
documentContainer.Items.Add(doc2);
documentContainer.Items.Add(doc3);
// Set as window content
this.Content = documentContainer;
}
}
}<syncfusion:DocumentContainer Name="DocContainer"
Mode="TDI"
SwitchMode="QuickTabs">
<!-- Add documents here -->
</syncfusion:DocumentContainer><syncfusion:DocumentContainer Name="DocContainer"
Mode="MDI"
CanMDIMinimize="True"
SwitchMode="VS2005">
<!-- Add documents here -->
</syncfusion:DocumentContainer>using System.Runtime.Serialization.Formatters.Binary;
// Save state to XML
BinaryFormatter formatter = new BinaryFormatter();
documentContainer.SaveDockState(formatter, StorageFormat.Xml, @"layout.xml");
// Load state from XML
BinaryFormatter formatter = new BinaryFormatter();
documentContainer.LoadDockState(formatter, StorageFormat.Xml, @"layout.xml");// Add a new document
TextBox newDoc = new TextBox { Text = "New Document Content" };
DocumentContainer.SetHeader(newDoc, "New Document");
documentContainer.Items.Add(newDoc);
// Remove all documents
documentContainer.Items.Clear();
// Remove specific document
documentContainer.Items.Remove(newDoc);| Property | Type | Description |
|---|---|---|
| DocumentContainerMode | Sets TDI or MDI mode |
| SwitchMode | Window switcher style (Immediate, List, QuickTabs, VS2005, VistaFlip) |
| bool | Enables MDI window minimization |
| ItemCollection | Collection of documents in the container |
| Method | Description |
|---|---|
| Saves document state to storage (Registry, XML, Binary) |
| Loads document state from storage |
| Resets the container to default state |
| Deletes saved state from storage |
| Adds a document to the container |
| Removes all documents from the container |
getting-started.md