mcpField
S
syncfusion-wpf-tab-splitter

syncfusion-wpf-tab-splitter

github.com/syncfusionDesign & UI5156 installsUpdated 1w ago
Repository

About syncfusion-wpf-tab-splitter

A guide to the Syncfusion WPF TabSplitter control, which places top and bottom page panels inside tab groups. It is intended for developers creating split editors and dual-pane tabbed views, with orientation and panel visibility controls.

Key features

  1. 01Split tab items into top and bottom panels
  2. 02Add pages to each panel
  3. 03Choose horizontal or vertical orientation
  4. 04Collapse or resize the bottom panel
  5. 05Customize tab colors and themes

Use cases

  1. 01Pair XAML and Design views in an editor
  2. 02Show dual-pane content within a tab
  3. 03Organize multiple split tab groups

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/syncfusion/wpf-ui-components-skills --skill syncfusion-wpf-tab-splitter

After installing, type/syncfusion-wpf-tab-splitterin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
appearance.md
getting-started.md
items-and-panels.md
orientation-and-layout.md

Details

From the project README

Implementing WPF TabSplitter

The TabSplitter control provides a Visual Studio 2008-style split view of tabbed groups. It divides content into top and bottom panels within each tab item — ideal for split editor layouts (e.g., XAML + Design views), dual-pane content viewers, and side-by-side tabbed panels.

Assemblies required:

  • Syncfusion.Tools.WPF
  • Syncfusion.Shared.WPF

XAML namespace:

xmlns:syncfusion="http://schemas.syncfusion.com/wpf"

C# namespace:

using Syncfusion.Windows.Tools.Controls;

When to Use This Skill

ScenarioUse TabSplitter
Split editor with XAML + Design views✅ Yes
Dual-pane content within a tab✅ Yes
Multiple tabbed groups each with split panels✅ Yes
Simple tab control (no split)❌ Use standard TabControl
Horizontal navigation sidebar❌ Use GroupBar or TreeNavigator

Documentation and Navigation Guide

Getting Started

📄 Read: references/getting-started.md

  • Assembly and NuGet setup
  • Adding TabSplitter via XAML and C#
  • Adding TabSplitterItem with content
  • Adding SplitterPages to TopPanelItems and BottomPanelItems
  • Applying themes via SfSkinManager
Items and Panel Structure

📄 Read: references/items-and-panels.md

  • TabSplitterItem: Header, TopPanelItems, BottomPanelItems
  • SplitterPage: Header, content, IsSelectedPage
  • Collapsing/expanding the bottom panel (IsCollapsedBottomPanel)
  • Setting BottomPanelHeight
  • Hiding the header tab when only one child (HideHeaderOnSingleChild)
  • Multiple TabSplitterItems in one TabSplitter
Orientation and Layout

📄 Read: references/orientation-and-layout.md

  • Horizontal vs Vertical orientation per item
  • Swap, collapse, and expand behaviors overview
Appearance and Themes

📄 Read: references/appearance.md

  • MouseOverBackground, MouseOverForeground
  • SelectedBackground, SelectedForeground
  • SfSkinManager built-in themes
  • ThemeStudio custom theme creation

Quick Start Example

Minimal TabSplitter with one split tab (XAML):

<Window x:Class="MyApp.MainWindow"
        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="MainWindow" Height="450" Width="800">
    <Grid>
        <syncfusion:TabSplitter Name="tabSplitter" Height="300" Width="500">
            <syncfusion:TabSplitterItem Header="Window1.xaml">
                <syncfusion:TabSplitterItem.TopPanelItems>
                    <syncfusion:SplitterPage Header="XAML">
                        <TextBlock Text="XAML View" HorizontalAlignment="Center"
                                   VerticalAlignment="Center" />
                    </syncfusion:SplitterPage>
                </syncfusion:TabSplitterItem.TopPanelItems>
                <syncfusion:TabSplitterItem.BottomPanelItems>
                    <syncfusion:SplitterPage Header="Design">
                        <TextBlock Text="Design View" HorizontalAlignment="Center"
                                   VerticalAlignment="Center" />
                    </syncfusion:SplitterPage>
                </syncfusion:TabSplitterItem.BottomPanelItems>
            </syncfusion:TabSplitterItem>
        </syncfusion:TabSplitter>
    </Grid>
</Window>

C# equivalent:

TabSplitter tabSplitter = new TabSplitter();

SplitterPage topPage = new SplitterPage() { Header = "XAML" };
SplitterPage bottomPage = new SplitterPage() { Header = "Design" };

TabSplitterItem item = new TabSplitterItem() { Header = "Window1.xaml" };
item.TopPanelItems.Add(topPage);
item.BottomPanelItems.Add(bottomPage);

tabSplitter.Items.Add(item);
grid.Children.Add(tabSplitter);

Common Patterns

Multiple tab groups
<syncfusion:TabSplitter>
    <syncfusion:TabSplitterItem Header="Window1.xaml">
        <syncfusion:TabSplitterItem.TopPanelItems>
            <syncfusion:SplitterPage Header="XAML" />
        </syncfusion:TabSplitterItem.TopPanelItems>
        <syncfusion:TabSplitterItem.BottomPanelItems>
            <syncfusion:SplitterPage Header="Design" />
        </syncfusion:TabSplitterItem.BottomPanelItems>
    </syncfusion:TabSplitterItem>
    <syncfusion:TabSplitterItem Header="Window2.xaml">
        <syncfusion:TabSplitterItem.TopPanelItems>
            <syncfusion:SplitterPage Header="XAML" />
        </syncfusion:TabSplitterItem.TopPanelItems>
        <syncfusion:TabSplitterItem.BottomPanelItems>
            <syncfusion:SplitterPage Header="Design" />
        </syncfusion:TabSplitterItem.BottomPanelItems>
    </syncfusion:TabSplitterItem>
</syncfusion:TabSplitter>
Start with bottom panel collapsed
<syncfusion:TabSplitterItem Header="Window1.xaml" IsCollapsedBottomPanel="True">
    ...
</syncfusion:TabSplitterItem>
Vertical split layout
<syncfusion:TabSplitterItem Header="Window1.xaml" Orientation="Vertical">
    ...
</syncfusion:TabSplitterItem>

Key Properties

PropertyOnTypeDescription
HeaderTabSplitterItemobjectTab header label
TopPanelItemsTabSplitterItemcollectionPages in the top panel
BottomPanelItemsTabSplitterItemcollectionPages in the bottom panel
OrientationTabSplitterItemOrientationHorizontal (default) or Vertical
IsCollapsedBottomPanelTabSplitterItemboolCollapse the bottom panel (default: false)
HeaderSplitterPageobjectTab label for the page
IsSelectedPageSplitterPageboolSet this page as selected
BottomPanelHeightTabSplitterdoubleHeight of the bottom panel
HideHeaderOnSingleChildTabSplitterboolHide tab header if only one item
SelectedBackgroundTabSplitterBrushBackground of selected tab
SelectedForegroundTabSplitterBrushForeground of selected tab
MouseOverBackgroundTabSplitterBrushBackground on hover
MouseOverForegroundTabSplitterBrushForeground on hover

Comments

Markdown supported