Skip to main content

syncfusion-wpf-tab-splitter

Implement Syncfusion WPF TabSplitter for VS 2008-style split tab views with top and bottom panel sections. Use this when building split tab layouts, dual-pane views, or side-by-side tabbed views in WPF. Covers SplitterPage, TopPanelItems, BottomPanelItems, TabSplitterItem, and collapsible split panel configuration.

来源信息

仓库
syncfusion/wpf-ui-components-skills
最近来源活动
2026年7月6日 07:21
检测到的 SKILL.md 语言
英语
星标
5
分支
2

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

文件资源管理器
5 个文件

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
syncfusion-wpf-tab-splitter
description
Implement Syncfusion WPF TabSplitter for VS 2008-style split tab views with top and bottom panel sections. Use this when building split tab layouts, dual-pane views, or side-by-side tabbed views in WPF. Covers SplitterPage, TopPanelItems, BottomPanelItems, TabSplitterItem, and collapsible split panel configuration.
metadata
{"author":"Syncfusion Inc","version":"34.1.29"}
# 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:** ```xml xmlns:syncfusion="http://schemas.syncfusion.com/wpf" ``` **C# namespace:** ```csharp using Syncfusion.Windows.Tools.Controls; ``` --- ## When to Use This Skill | Scenario | Use 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](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](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](references/orientation-and-layout.md) - Horizontal vs Vertical orientation per item - Swap, collapse, and expand behaviors overview ### Appearance and Themes 📄 **Read:** [references/appearance.md](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):** ```xml <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:** ```csharp 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 ```xml <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 ```xml <syncfusion:TabSplitterItem Header="Window1.xaml" IsCollapsedBottomPanel="True"> ... </syncfusion:TabSplitterItem> ``` ### Vertical split layout ```xml <syncfusion:TabSplitterItem Header="Window1.xaml" Orientation="Vertical"> ... </syncfusion:TabSplitterItem> ``` --- ## Key Properties | Property | On | Type | Description | |----------|----|------|-------------| | `Header` | `TabSplitterItem` | `object` | Tab header label | | `TopPanelItems` | `TabSplitterItem` | collection | Pages in the top panel | | `BottomPanelItems` | `TabSplitterItem` | collection | Pages in the bottom panel | | `Orientation` | `TabSplitterItem` | `Orientation` | `Horizontal` (default) or `Vertical` | | `IsCollapsedBottomPanel` | `TabSplitterItem` | `bool` | Collapse the bottom panel (default: `false`) | | `Header` | `SplitterPage` | `object` | Tab label for the page | | `IsSelectedPage` | `SplitterPage` | `bool` | Set this page as selected | | `BottomPanelHeight` | `TabSplitter` | `double` | Height of the bottom panel | | `HideHeaderOnSingleChild` | `TabSplitter` | `bool` | Hide tab header if only one item | | `SelectedBackground` | `TabSplitter` | `Brush` | Background of selected tab | | `SelectedForeground` | `TabSplitter` | `Brush` | Foreground of selected tab | | `MouseOverBackground` | `TabSplitter` | `Brush` | Background on hover | | `MouseOverForeground` | `TabSplitter` | `Brush` | Foreground on hover |
在 GitHub 查看