syncfusion-blazor-splitter

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Implementing Syncfusion Blazor Splitter

实现Syncfusion Blazor Splitter

The Syncfusion Blazor Splitter component is a layout-based container that enables you to split a container area into resizable and collapsible panes. Use this skill when you need to create complex layouts with multiple content areas that users can adjust.
Syncfusion Blazor Splitter组件是一个基于布局的容器,可将容器区域划分为可调整大小和可折叠的窗格。当你需要创建包含多个可由用户调整的内容区域的复杂布局时,可以使用该组件。

When to Use This Skill

适用场景

Use this skill when you need to:
  • Create split layouts — Divide your UI into multiple panes (2, 3, or more) that users can resize
  • Handle pane configurations — Control pane sizing, minimum/maximum constraints, visibility, and collapsibility
  • Manage user interactions — Respond to resize events, collapse/expand actions, and state changes
  • Build complex interfaces — Create code editor layouts, dashboard panels, or multi-section dashboards
  • Persist pane state — Save and restore pane sizes and collapse states across page refreshes
  • Apply custom styling — Customize split bars, resize handles, and overall component appearance
在以下场景中使用该技能:
  • 创建拆分布局 — 将UI划分为多个(2个、3个或更多)用户可调整大小的窗格
  • 处理窗格配置 — 控制窗格尺寸、最小/最大约束、可见性和可折叠性
  • 管理用户交互 — 响应调整大小事件、折叠/展开操作以及状态变更
  • 构建复杂界面 — 创建代码编辑器布局、仪表板面板或多区域仪表板
  • 持久化窗格状态 — 在页面刷新时保存和恢复窗格尺寸与折叠状态
  • 应用自定义样式 — 自定义拆分栏、调整大小手柄以及组件整体外观

Component Overview

组件概述

The Splitter divides container space into independent panes using flexible layout:
  • Default: Horizontal orientation with vertical separators (left-to-right split)
  • Vertical mode: Vertical orientation with horizontal separators (top-to-bottom split)
  • Nested splitters: Support for complex layouts by nesting splitters within panes
  • Resizable: Users drag separators to adjust pane sizes in real-time
  • Collapsible: Optional collapse/expand buttons to hide panes and recover space
  • Persistent: Built-in state persistence to localStorage for user preferences
Splitter通过灵活布局将容器空间划分为独立窗格:
  • 默认模式:水平方向,带有垂直分隔符(从左到右拆分)
  • 垂直模式:垂直方向,带有水平分隔符(从上到下拆分)
  • 嵌套拆分器:支持在窗格内嵌套拆分器以实现复杂布局
  • 可调整大小:用户拖动分隔符可实时调整窗格尺寸
  • 可折叠:可选的折叠/展开按钮,用于隐藏窗格以回收空间
  • 持久化:内置状态持久化到localStorage,保存用户偏好设置

Documentation and Navigation Guide

文档与导航指南

Getting Started

快速入门

📄 Read: references/getting-started.md
  • Installation and NuGet package setup
  • WebAssembly vs Blazor Web App configuration
  • Namespace imports and service registration
  • Stylesheet and script resources
  • Basic horizontal and vertical splitter implementation
  • First render and initialization
📄 阅读: references/getting-started.md
  • 安装与NuGet包设置
  • WebAssembly与Blazor Web应用配置
  • 命名空间导入与服务注册
  • 样式表与脚本资源
  • 基础水平和垂直拆分器实现
  • 首次渲染与初始化

Split Panes and Layouts

拆分窗格与布局

📄 Read: references/split-panes.md
  • Horizontal layout (default orientation)
  • Vertical layout (Orientation.Vertical)
  • Multiple panes configuration
  • Separator customization (SeparatorSize)
  • Nested splitter patterns
  • Flex-based auto-sizing behavior
  • Add and remove panes dynamically (AddPaneAsync, RemovePaneAsync)
📄 阅读: references/split-panes.md
  • 水平布局(默认方向)
  • 垂直布局(Orientation.Vertical)
  • 多窗格配置
  • 分隔符自定义(SeparatorSize)
  • 嵌套拆分器模式
  • 基于Flex的自动尺寸行为
  • 动态添加和移除窗格(AddPaneAsync、RemovePaneAsync)

Pane Configuration and Settings

窗格配置与设置

📄 Read: references/pane-configuration.md
  • Pane sizing (fixed pixels, percentages, auto)
  • Min/Max size constraints
  • Visibility control (show/hide panes)
  • Collapsible panes with toggle buttons
  • Content templates and plain text
  • Integrating other Blazor components
📄 阅读: references/pane-configuration.md
  • 窗格尺寸(固定像素、百分比、自动)
  • 最小/最大尺寸约束
  • 可见性控制(显示/隐藏窗格)
  • 带切换按钮的可折叠窗格
  • 内容模板与纯文本
  • 集成其他Blazor组件

Events and Interactions

事件与交互

📄 Read: references/events-and-interactions.md
  • Created event lifecycle
  • OnResizeStart, Resizing, OnResizeStop events
  • OnCollapse, OnExpand event handlers
  • Collapsed, Expanded completion events
  • Event args and callback structures
  • Common event handling patterns
📄 阅读: references/events-and-interactions.md
  • Created事件生命周期
  • OnResizeStart、Resizing、OnResizeStop事件
  • OnCollapse、OnExpand事件处理程序
  • Collapsed、Expanded完成事件
  • 事件参数与回调结构
  • 常见事件处理模式

Resizing, Expand, and Collapse

调整大小、展开与折叠

📄 Read: references/resizing-and-expand-collapse.md
  • Resizing behavior and gripper element
  • Prevent resizing (Resizable property)
  • Min/Max size validation during resize
  • Enable/disable collapsible panes
  • Programmatic expand/collapse methods
  • Initial collapsed state configuration
  • Customize resize icons and cursors
  • Separator template customization (custom HTML templates)
📄 阅读: references/resizing-and-expand-collapse.md
  • 调整大小行为与抓手元素
  • 禁止调整大小(Resizable属性)
  • 调整大小时的最小/最大尺寸验证
  • 启用/禁用可折叠窗格
  • 程序化展开/折叠方法
  • 初始折叠状态配置
  • 自定义调整大小图标与光标
  • 分隔符模板自定义(自定义HTML模板)

Styling and Theming

样式与主题

📄 Read: references/styling-and-theming.md
  • Customize split bar appearance
  • Style resize handles
  • Customize resize arrows
  • Hide/show resize handlers
  • CSS class selectors for panes
  • Theme integration (Bootstrap, Fluent, etc.)
📄 阅读: references/styling-and-theming.md
  • 自定义拆分栏外观
  • 设置调整大小手柄样式
  • 自定义调整大小箭头
  • 显示/隐藏调整大小手柄
  • 窗格的CSS类选择器
  • 主题集成(Bootstrap、Fluent等)

State Management and Persistence

状态管理与持久化

📄 Read: references/state-management.md
  • Enable state persistence (EnablePersistence)
  • Two-way data binding (@bind-Collapsed, @bind-Size)
  • Save/restore pane sizes and collapsed states
  • LocalStorage integration
  • Binding pane properties to component state
📄 阅读: references/state-management.md
  • 启用状态持久化(EnablePersistence)
  • 双向数据绑定(@bind-Collapsed、@bind-Size)
  • 保存/恢复窗格尺寸与折叠状态
  • LocalStorage集成
  • 将窗格属性绑定到组件状态

Advanced Scenarios and Layouts

高级场景与布局

📄 Read: references/advanced-scenarios.md
  • Code editor style layout (nested horizontal + vertical)
  • Outlook style layout with TreeView and ListView
  • Dashboard and multi-panel layouts
  • Performance optimization for complex layouts
  • Nested splitters best practices
  • Common troubleshooting and edge cases
📄 阅读: references/advanced-scenarios.md
  • 代码编辑器样式布局(嵌套水平+垂直)
  • 带有TreeView和ListView的Outlook样式布局
  • 仪表板与多面板布局
  • 复杂布局的性能优化
  • 嵌套拆分器最佳实践
  • 常见问题排查与边缘情况

Complete API Reference

完整API参考

📄 Read: references/api-reference.md
  • All SfSplitter properties, methods, and events
  • SplitterPane property details
  • Event arguments and handlers
  • Complete code examples for each API
  • Content property vs ContentTemplate comparison
  • RTL, persistence, and advanced property usage
📄 阅读: references/api-reference.md
  • 所有SfSplitter属性、方法与事件
  • SplitterPane属性详情
  • 事件参数与处理程序
  • 每个API的完整代码示例
  • Content属性与ContentTemplate对比
  • RTL、持久化与高级属性用法

Quick Start Example

快速入门示例

Horizontal Splitter with Two Panes

双窗格水平拆分器

csharp
@using Syncfusion.Blazor.Layouts

<SfSplitter Height="240px" Width="100%">
    <SplitterPanes>
        <SplitterPane Size="300px">
            <ContentTemplate>
                <div style="padding: 10px;">
                    <h3>Left Pane</h3>
                    <p>Content here</p>
                </div>
            </ContentTemplate>
        </SplitterPane>
        <SplitterPane>
            <ContentTemplate>
                <div style="padding: 10px;">
                    <h3>Right Pane</h3>
                    <p>Content here</p>
                </div>
            </ContentTemplate>
        </SplitterPane>
    </SplitterPanes>
</SfSplitter>
csharp
@using Syncfusion.Blazor.Layouts

<SfSplitter Height="240px" Width="100%">
    <SplitterPanes>
        <SplitterPane Size="300px">
            <ContentTemplate>
                <div style="padding: 10px;">
                    <h3>Left Pane</h3>
                    <p>Content here</p>
                </div>
            </ContentTemplate>
        </SplitterPane>
        <SplitterPane>
            <ContentTemplate>
                <div style="padding: 10px;">
                    <h3>Right Pane</h3>
                    <p>Content here</p>
                </div>
            </ContentTemplate>
        </SplitterPane>
    </SplitterPanes>
</SfSplitter>

Vertical Splitter with Collapse Buttons

带折叠按钮的垂直拆分器

csharp
@using Syncfusion.Blazor.Layouts

<SfSplitter Height="300px" Width="100%" Orientation="Orientation.Vertical">
    <SplitterPanes>
        <SplitterPane Size="100px" Collapsible="true">
            <ContentTemplate>
                <div style="padding: 10px;">Top Pane</div>
            </ContentTemplate>
        </SplitterPane>
        <SplitterPane Collapsible="true">
            <ContentTemplate>
                <div style="padding: 10px;">Bottom Pane</div>
            </ContentTemplate>
        </SplitterPane>
    </SplitterPanes>
</SfSplitter>
csharp
@using Syncfusion.Blazor.Layouts

<SfSplitter Height="300px" Width="100%" Orientation="Orientation.Vertical">
    <SplitterPanes>
        <SplitterPane Size="100px" Collapsible="true">
            <ContentTemplate>
                <div style="padding: 10px;">Top Pane</div>
            </ContentTemplate>
        </SplitterPane>
        <SplitterPane Collapsible="true">
            <ContentTemplate>
                <div style="padding: 10px;">Bottom Pane</div>
            </ContentTemplate>
        </SplitterPane>
    </SplitterPanes>
</SfSplitter>

Common Patterns

常见模式

Pattern 1: Responsive Three-Pane Layout

模式1:响应式三窗格布局

csharp
<SfSplitter Height="400px" Width="100%">
    <SplitterPanes>
        <SplitterPane Size="20%" Min="150px" Collapsible="true">
            <ContentTemplate><div>Sidebar</div></ContentTemplate>
        </SplitterPane>
        <SplitterPane Size="60%" Min="300px">
            <ContentTemplate><div>Main Content</div></ContentTemplate>
        </SplitterPane>
        <SplitterPane Size="20%" Min="150px" Collapsible="true">
            <ContentTemplate><div>Details Panel</div></ContentTemplate>
        </SplitterPane>
    </SplitterPanes>
</SfSplitter>
When to use: Dashboard layouts, IDE-style interfaces, content management systems.
csharp
<SfSplitter Height="400px" Width="100%">
    <SplitterPanes>
        <SplitterPane Size="20%" Min="150px" Collapsible="true">
            <ContentTemplate><div>Sidebar</div></ContentTemplate>
        </SplitterPane>
        <SplitterPane Size="60%" Min="300px">
            <ContentTemplate><div>Main Content</div></ContentTemplate>
        </SplitterPane>
        <SplitterPane Size="20%" Min="150px" Collapsible="true">
            <ContentTemplate><div>Details Panel</div></ContentTemplate>
        </SplitterPane>
    </SplitterPanes>
</SfSplitter>
适用场景:仪表板布局、IDE风格界面、内容管理系统。

Pattern 2: Nested Splitters (Code Editor Layout)

模式2:嵌套拆分器(代码编辑器布局)

csharp
<SfSplitter Height="400px" Orientation="Orientation.Vertical">
    <SplitterPanes>
        <SplitterPane Size="60%">
            <SfSplitter Height="100%">
                <SplitterPanes>
                    <SplitterPane Size="30%"><ContentTemplate>HTML</ContentTemplate></SplitterPane>
                    <SplitterPane Size="30%"><ContentTemplate>CSS</ContentTemplate></SplitterPane>
                    <SplitterPane Size="40%"><ContentTemplate>JS</ContentTemplate></SplitterPane>
                </SplitterPanes>
            </SfSplitter>
        </SplitterPane>
        <SplitterPane Size="40%"><ContentTemplate>Preview</ContentTemplate></SplitterPane>
    </SplitterPanes>
</SfSplitter>
When to use: Code editors, preview panes, complex dashboard layouts.
csharp
<SfSplitter Height="400px" Orientation="Orientation.Vertical">
    <SplitterPanes>
        <SplitterPane Size="60%">
            <SfSplitter Height="100%">
                <SplitterPanes>
                    <SplitterPane Size="30%"><ContentTemplate>HTML</ContentTemplate></SplitterPane>
                    <SplitterPane Size="30%"><ContentTemplate>CSS</ContentTemplate></SplitterPane>
                    <SplitterPane Size="40%"><ContentTemplate>JS</ContentTemplate></SplitterPane>
                </SplitterPanes>
            </SfSplitter>
        </SplitterPane>
        <SplitterPane Size="40%"><ContentTemplate>Preview</ContentTemplate></SplitterPane>
    </SplitterPanes>
</SfSplitter>
适用场景:代码编辑器、预览窗格、复杂仪表板布局。

Pattern 3: Collapsible Sidebar with State Binding

模式3:带状态绑定的可折叠侧边栏

csharp
<SfSplitter Height="300px" Width="100%">
    <SplitterPanes>
        <SplitterPane Size="250px" Min="50px" Collapsible="true" @bind-Collapsed="@sidebarCollapsed">
            <ContentTemplate><div>Navigation</div></ContentTemplate>
        </SplitterPane>
        <SplitterPane>
            <ContentTemplate><div>Main Area</div></ContentTemplate>
        </SplitterPane>
    </SplitterPanes>
</SfSplitter>

@code {
    private bool sidebarCollapsed = false;
}
When to use: Applications needing dynamic sidebar toggles synchronized with UI state.
csharp
<SfSplitter Height="300px" Width="100%">
    <SplitterPanes>
        <SplitterPane Size="250px" Min="50px" Collapsible="true" @bind-Collapsed="@sidebarCollapsed">
            <ContentTemplate><div>Navigation</div></ContentTemplate>
        </SplitterPane>
        <SplitterPane>
            <ContentTemplate><div>Main Area</div></ContentTemplate>
        </SplitterPane>
    </SplitterPanes>
</SfSplitter>

@code {
    private bool sidebarCollapsed = false;
}
适用场景:需要与UI状态同步的动态侧边栏切换的应用程序。

Key Props and Configuration

关键属性与配置

PropertyTypeDescriptionDefault
Height
stringContainer heightRequired
Width
stringContainer width100%
Orientation
OrientationHorizontal or VerticalHorizontal
SeparatorSize
intSeparator thickness in pixels1
EnablePersistence
boolSave state to localStoragefalse
Size
stringPane width/height (px or %)Auto
Min
stringMinimum pane size0
Max
stringMaximum pane sizeUnlimited
Resizable
boolAllow pane resizingtrue
Collapsible
boolShow collapse/expand buttonsfalse
Visible
boolShow/hide panetrue
Collapsed
boolInitial collapsed statefalse
属性类型描述默认值
Height
string容器高度必填
Width
string容器宽度100%
Orientation
Orientation水平或垂直Horizontal
SeparatorSize
int分隔符厚度(像素)1
EnablePersistence
bool将状态保存到localStoragefalse
Size
string窗格宽度/高度(px或%)Auto
Min
string窗格最小尺寸0
Max
string窗格最大尺寸无限制
Resizable
bool允许调整窗格大小true
Collapsible
bool显示折叠/展开按钮false
Visible
bool显示/隐藏窗格true
Collapsed
bool初始折叠状态false

Common Use Cases

常见用例

  1. Code Editor Interface — Top panes for code tabs, bottom pane for output. Use nested horizontal splitters in top pane.
  2. Admin Dashboard — Left sidebar for navigation, main area for content. Add right panel for details or settings.
  3. Mail Client — Left pane for folder list, center for email list, right for email content.
  4. Project Management Tool — Multiple collapsible panels for timeline, tasks, and gantt chart.
  5. Data Analysis Dashboard — Resizable panels for charts, tables, and filters with state persistence.

Next Steps:
  • Start with Getting Started for setup instructions
  • Read Split Panes to understand layout options
  • Explore Pane Configuration for customization
  • Check Advanced Scenarios for complex layouts
  1. 代码编辑器界面 — 顶部窗格用于代码标签,底部窗格用于输出。在顶部窗格中使用嵌套水平拆分器。
  2. 管理仪表板 — 左侧侧边栏用于导航,主区域用于内容。添加右侧面板用于详情或设置。
  3. 邮件客户端 — 左侧窗格用于文件夹列表,中间用于邮件列表,右侧用于邮件内容。
  4. 项目管理工具 — 多个可折叠面板,用于时间线、任务和甘特图。
  5. 数据分析仪表板 — 可调整大小的面板,用于图表、表格和过滤器,并支持状态持久化。

下一步:
  • 快速入门开始了解设置说明
  • 阅读拆分窗格以了解布局选项
  • 探索窗格配置进行自定义
  • 查看高级场景了解复杂布局