
syncfusion-wpf-tabbedwindow
Comprehensive guide for implementing Syncfusion WPF Tabbed Window control that combines SfChromelessWindow with SfTabControl for document-based applications. Use this skill when implementing chromeless tabbed windows, browser-style tabs, document management windows, or Visual Studio-style tabs in WPF. Covers tear-off tabs, floating tab windows, tab merging between windows, drag-drop tab reordering, and MVVM tab binding scenarios.
- Installs
- 160
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/syncfusion/wpf-ui-components-skills --skill syncfusion-wpf-tabbedwindow- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads syncfusion-wpf-tabbedwindow automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Implementing Syncfusion WPF Tabbed Windows
A comprehensive guide for implementing the Syncfusion WPF Tabbed Window control, which combines SfChromelessWindow with SfTabControl to create professional document-based applications with advanced tab management, tear-off windows, and cross-window tab merging capabilities.
When to Use This Skill
Use this skill for document-based applications with multiple tabs, browser-style interfaces, tear-off windows, tab merging, and MVVM binding. Covers setup, window modes, tab management, data binding, floating windows, and customization.
Component Overview
The Tabbed Window is a powerful combination of SfChromelessWindow and SfTabControl that enables professional document-based applications with:
- Drag-and-Drop Reordering - Intuitive tab reordering within the tab bar or between windows
- Tear-Off Windows - Create floating windows by dragging tabs outside window boundaries
- Tab Merging - Move tabs between multiple TabbedWindow instances with validation
- Flexible Tab Management - Dynamic add, remove, and select operations with close/new tab buttons
- MVVM Support - Full data binding through ItemsSource for data-driven scenarios
- Window Type Modes - Tabbed mode (chrome-integrated) or Normal mode (content-based)
- Content Customization - Templates for headers, icons, and content
- Event-Driven Architecture - Comprehensive events for all tab operations
Key Assemblies Required:
Syncfusion.SfChromelessWindow.WPFSyncfusion.Shared.WPF
Namespace:
xmlns:syncfusion="http://schemas.syncfusion.com/wpf"
Documentation and Navigation Guide
Getting Started
📄 Read: references/getting-started.md
When you need to:
- Install and reference required assemblies
- Create your first tabbed window in XAML or code-behind
- Understand Window Type Modes (Tabbed vs Normal)
- Choose the right mode for your application
- Create basic tab items
- Configure essential properties
Key Topics: Installation, basic window setup, WindowType property, Tabbed vs Normal mode comparison, assembly references, namespace imports
Tab Management
📄 Read: references/tab-management.md
When you need to:
- Add close buttons to tabs
- Enable the new tab (+) button
- Handle NewTabRequested event for dynamic tab creation
- Customize the new tab button appearance
- Implement keyboard shortcuts (Ctrl+Tab, Ctrl+Shift+Tab, Ctrl+T)
- Support middle-click to close tabs
- Programmatically add, remove, or select tabs
Key Topics: CloseButtonVisibility, EnableNewTabButton, NewTabRequested event, NewTabButtonStyle, keyboard shortcuts, tab selection
Data Binding (MVVM)
📄 Read: references/data-binding.md
When you need to:
- Bind tabs to a ViewModel collection
- Implement MVVM pattern with tabbed windows
- Use
ItemsSourcefor data-driven tab scenarios - Create tab models and ViewModels
- Customize tab headers and content through templates
- Configure
ItemTemplateandContentTemplate - Use
ItemContainerStylefor tab styling - Handle dynamic collection updates with ObservableCollection
Key Topics: MVVM pattern, ItemsSource binding, ItemTemplate, ContentTemplate, ItemContainerStyle, ObservableCollection, tab models
Tab Merging and Floating Windows
📄 Read: references/merge-tabs.md
When you need to:
- Enable tear-off functionality to create floating windows
- Understand how tabs become independent windows
- Reattach floating tabs back to main window
- Merge tabs between multiple windows
- Validate merge operations with
PreviewTabMergeevent - Control which tabs can be moved
- Transform items during merge operations
- Handle multi-window workspace scenarios
Key Topics: Tear-off windows, drag-outside behavior, floating window lifecycle, PreviewTabMerge event, TabMergePreviewEventArgs, cross-window merging, merge validation
Customization and Styling
📄 Read: references/customization.md
When you need to:
- Apply Syncfusion themes
- Customize window chrome appearance
- Style tab headers and content areas
- Create custom header and content templates
- Customize close button appearance
- Configure drag-drop visual feedback
- Set colors, fonts, and spacing
- Implement responsive design
- Follow best practices for professional appearance
Key Topics: Theme application, style customization, template customization, visual appearance, AllowDragDrop, responsive design, professional styling
Quick Start Example
Basic Tabbed Window with Close Buttons
XAML:
<syncfusion:SfChromelessWindow x:Class="TabbedWindowApp.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="Document Manager"
WindowType="Tabbed"
Height="600"
Width="900">
<syncfusion:SfTabControl
AllowDragDrop="True"
EnableNewTabButton="True"
NewTabRequested="OnNewTabRequested">
<syncfusion:SfTabItem
Header="Document 1"
CloseButtonVisibility="Visible">
<TextBlock Text="Welcome to Document 1"
Margin="20"/>
</syncfusion:SfTabItem>
<syncfusion:SfTabItem
Header="Document 2"
CloseButtonVisibility="Visible">
<TextBlock Text="Welcome to Document 2"
Margin="20"/>
</syncfusion:SfTabItem>
</syncfusion:SfTabControl>
</syncfusion:SfChromelessWindow>
Code-Behind:
using Syncfusion.Windows.Controls;
public partial class MainWindow : SfChromelessWindow
{
public MainWindow()
{
InitializeComponent();
}
private void OnNewTabRequested(object sender, NewTabRequestedEventArgs e)
{
var tabCount = ((SfTabControl)sender).Items.Count;
var newTab = new SfTabItem
{
Header = $"Document {tabCount + 1}",
Content = new TextBlock
{
Text = $"New Document {tabCount + 1}",
Margin = new Thickness(20)
},
CloseButtonVisibility = Visibility.Visible
};
e.Item = newTab;
}
}
Common Patterns
Pattern 1: Document Editor with Drag-Drop and New Tab
<syncfusion:SfChromelessWindow WindowType="Tabbed">
<syncfusion:SfTabControl
AllowDragDrop="True"
EnableNewTabButton="True"
NewTabRequested="OnNewTabRequested">
<!-- Tabs here -->
</syncfusion:SfTabControl>
</syncfusion:SfChromelessWindow>
Pattern 2: MVVM Data-Bound Tabs
<syncfusion:SfTabControl ItemsSource="{Binding OpenDocuments}">
<syncfusion:SfTabControl.ItemContainerStyle>
<Style TargetType="syncfusion:SfTabItem">
<Setter Property="HeaderTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock Text="{Binding Title}" />
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</syncfusion:SfTabControl.ItemContainerStyle>
<syncfusion:SfTabControl.ContentTemplate>
<DataTemplate>
<TextBlock Text="{Binding Content}" />
</DataTemplate>
</syncfusion:SfTabControl.ContentTemplate>
</syncfusion:SfTabControl>
Key Properties and Events
Core Properties
| Property | Type | Description |
|---|---|---|
WindowType | WindowType | Tabbed (chrome-integrated) or Normal (content-based) |
AllowDragDrop | bool | Enable drag-drop reordering and tear-off |
EnableNewTabButton | bool | Show/hide the new tab (+) button |
SelectedItem | object | Currently active tab |
SelectedIndex | int | Index of active tab |
ItemsSource | IEnumerable | Bind tabs to a collection (MVVM) |
CloseButtonVisibility | Visibility | Show/hide close button per tab |
Important Events
| Event | Description |
|---|---|
NewTabRequested | Fired when user clicks the + button; set e.Item to create tab |
PreviewTabMerge | Fired before tab moves between windows; set e.Allow to validate |
SelectionChanged | Fired when active tab changes |
Styling Properties
| Property | Description |
|---|---|
NewTabButtonStyle | Style for the new tab button |
ItemTemplate | DataTemplate for tab headers |
ContentTemplate | DataTemplate for tab content |
ItemContainerStyle | Style for SfTabItem containers |
Best Practices
- Choose the Right Mode: Use Tabbed mode for document-centric apps, Normal mode when tabs are secondary navigation
- Enable Drag-Drop: Set
AllowDragDrop="True"for intuitive reordering and tear-off functionality - Handle NewTabRequested: Always implement this event handler when
EnableNewTabButton="True" - MVVM Pattern: Use
ItemsSourcebinding for data-driven scenarios with clean separation of concerns - Validate Merges: Use
PreviewTabMergeto control which tabs can be moved between windows - Keyboard Support: Document keyboard shortcuts for users (Ctrl+Tab, Ctrl+Shift+Tab, Ctrl+T)
- Visual Feedback: Ensure drag-drop operations have clear visual indicators for user guidance
FAQ
What does the syncfusion-wpf-tabbedwindow skill do?
Comprehensive guide for implementing Syncfusion WPF Tabbed Window control that combines SfChromelessWindow with SfTabControl for document-based applications. Use this skill when implementing chromeless tabbed windows, browser-style tabs, document management windows, or Visual Studio-style tabs in WPF. Covers tear-off tabs, floating tab windows, tab merging between windows, drag-drop tab reordering, and MVVM tab binding scenarios.
How do I install syncfusion-wpf-tabbedwindow?
Run npx skills add https://github.com/syncfusion/wpf-ui-components-skills --skill syncfusion-wpf-tabbedwindow in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/syncfusion-wpf-tabbedwindow/ (personal) or .claude/skills/syncfusion-wpf-tabbedwindow/ (project).
Which AI agents can use syncfusion-wpf-tabbedwindow?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is syncfusion-wpf-tabbedwindow safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains syncfusion-wpf-tabbedwindow?
It is published by syncfusion in syncfusion/wpf-ui-components-skills. It has 160 recorded installs.
More from syncfusion/wpf-ui-components-skills
syncfusion-wpf-theming
syncfusion/wpf-ui-components-skills
Open the skill to read its SKILL.md instructions.
syncfusion-wpf-datagrid
syncfusion/wpf-ui-components-skills
Open the skill to read its SKILL.md instructions.
syncfusion-wpf-carousel
syncfusion/wpf-ui-components-skills
Open the skill to read its SKILL.md instructions.
syncfusion-wpf-button
syncfusion/wpf-ui-components-skills
Implement Syncfusion WPF ButtonAdv controls for configurable button UIs. Use this when adding, configuring, or customizing a Syncfusion WPF ButtonAdv — including labels, icons, size modes, toggle/checkable behavior, MVVM command binding, multiline text, corner radius, IsDefault/IsCancel modes, icon templates, and themes.
syncfusion-wpf-combobox
syncfusion/wpf-ui-components-skills
Open the skill to read its SKILL.md instructions.
syncfusion-wpf-licensing
syncfusion/wpf-ui-components-skills
Open the skill to read its SKILL.md instructions.
Popular frontend & design skills
setup-matt-pocock-skills
mattpocock/skills
Configure this repo for the engineering skills: set up its issue tracker, triage label vocabulary, and domain doc layout. Run once before first use of the other engineering skills.
frontend-design
anthropics/skills
Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.
hyperframes-animation
heygen-com/hyperframes
All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). Also covers auditing an existing composition's choreography (animation map) and 24 named text-animation effects. HyperFrames-native: single paused timeline, seek-safe, deterministic.
prototype
mattpocock/skills
Build a throwaway prototype to answer a design question. Use when the user wants to sanity-check whether a state model or logic feels right, or explore what a UI should look like.
hyperframes-core
heygen-com/hyperframes
The HyperFrames composition contract — build one renderable project. Use for composition structure, the data- timing attributes, class="clip", tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Read before writing composition HTML.
vercel-react-best-practices
vercel-labs/agent-skills
React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.