# RadzenSplitter Class

A splitter component that divides space between resizable panes with draggable dividers. RadzenSplitter creates layouts with user-adjustable panel sizes, ideal for multi-column interfaces or resizable sidebars. Allows users to customize their workspace by dragging dividers to resize panes. Common use cases include code editors with resizable file explorer/code/output panes, email clients with adjustable folder list/message list/message preview, admin dashboards with resizable navigation and content areas, and data analysis tools with adjustable grid/chart/filter panels. Features resizable panes (drag dividers between panes to adjust sizes), Horizontal (side-by-side) or Vertical (top-to-bottom) orientation, size control with fixed pixel sizes/percentages/auto-sized panes, min/max constraints to prevent panes from becoming too small or large, optional collapse/expand functionality per pane, and nested splitters to create complex layouts. Panes are defined using RadzenSplitterPane components. Use Size property for fixed widths/heights.

Namespace: [Radzen.Blazor](https://blazor.radzen.com/docs/api/Radzen.Blazor.md)

Assembly: Radzen.Blazor.dll

## Inheritance

- Object
- ComponentBase
- [RadzenComponent](https://blazor.radzen.com/docs/api/Radzen.RadzenComponent.md)
- RadzenSplitter

## Implements

- IComponent
- IHandleEvent
- IHandleAfterRender

## Syntax

```csharp
public class RadzenSplitter : RadzenComponent, IComponent, IHandleEvent, IHandleAfterRender
```

## Examples

Basic horizontal splitter:

```razor
<RadzenSplitter Style="height: 400px;">
    <RadzenSplitterPane Size="30%">
        Left sidebar content
    </RadzenSplitterPane>
    <RadzenSplitterPane>
        Main content (auto-sized)
    </RadzenSplitterPane>
</RadzenSplitter>
```

Vertical splitter with min/max sizes:

```razor
<RadzenSplitter Orientation="Orientation.Vertical" Style="height: 600px;">
    <RadzenSplitterPane Size="200px" Min="100px" Max="400px">
        Top pane (resizable 100-400px)
    </RadzenSplitterPane>
    <RadzenSplitterPane>
        Bottom pane (fills remaining space)
    </RadzenSplitterPane>
</RadzenSplitter>
```

## Constructors

| Constructor | Description |
|-------------|-------------|
| `public RadzenSplitter()` | A splitter component that divides space between resizable panes with draggable dividers. RadzenSplitter creates layouts with user-adjustable panel sizes, ideal for multi-column interfaces or resizable sidebars. Allows users to customize their workspace by dragging dividers to resize panes. Common use cases include code editors with resizable file explorer/code/output panes, email clients with adjustable folder list/message list/message preview, admin dashboards with resizable navigation and content areas, and data analysis tools with adjustable grid/chart/filter panels. Features resizable panes (drag dividers between panes to adjust sizes), Horizontal (side-by-side) or Vertical (top-to-bottom) orientation, size control with fixed pixel sizes/percentages/auto-sized panes, min/max constraints to prevent panes from becoming too small or large, optional collapse/expand functionality per pane, and nested splitters to create complex layouts. Panes are defined using RadzenSplitterPane components. Use Size property for fixed widths/heights. |

## Properties

| Property | Type | Description |
|------|------|-------------|
| ChangeStateOnResize | `bool` | Value indicating if the splitter should call StateHasChanged on resizing. |
| ChildContent | `RenderFragment` | Gets or sets the panes to display within the splitter. Each RadzenSplitterPane represents one resizable section of the splitter. |
| Collapse | `EventCallback<RadzenSplitterEventArgs>` | Gets or sets the collapse callback. |
| Expand | `EventCallback<RadzenSplitterEventArgs>` | Gets or sets the expand callback. |
| IsResizing | `bool` | Value indicating if the splitter is resizing. |
| Orientation | [`Orientation`](https://blazor.radzen.com/docs/api/Radzen.Orientation.md) | Gets or sets the layout direction of the splitter. Horizontal arranges panes side-by-side (resizable width), Vertical stacks panes top-to-bottom (resizable height). |
| Resize | `EventCallback<RadzenSplitterResizeEventArgs>` | Gets or sets the resize callback. |

## Methods

| Method | Returns | Description |
|------|---------|-------------|
| `AddPane(RadzenSplitterPane pane)` | `void` | Adds the pane. Parameters: `pane`: The pane. |
| `BuildRenderTree(Rendering.RenderTreeBuilder __builder)` | `void` |  |
| `GetComponentCssClass()` | `string` |  |
| `OnPaneResized(int paneIndex, double sizeNew, int? paneNextIndex, double? sizeNextNew)` | `Task` | Called when pane resized. Parameters: `paneIndex`: Index of the pane. `sizeNew`: The size new. `paneNextIndex`: Index of the pane next. `sizeNextNew`: The size next new. |
| `OnPaneResizing()` | `Task` | Called on pane resizing. |
| `Refresh()` | `void` | Refreshes this instance. |
| `RemovePane(RadzenSplitterPane pane)` | `void` | Removes the pane. Parameters: `pane`: The pane. |

## Inherited Members

- From [RadzenComponent](https://blazor.radzen.com/docs/api/Radzen.RadzenComponent.md): AddContextMenu, Attributes, ContextMenu, Culture, CurrentStyle, Debounce, DefaultCulture, DefaultUICulture, Dispose, Element, GetCssClass, GetId, GetIdAttribute, IsJSRuntimeAvailable, JSRuntime, Localize, MouseEnter, MouseLeave, OnAfterRenderAsync, OnBecameInvisible, OnContextMenu, OnInitialized, OnMouseEnter, OnMouseLeave, RaiseContextMenu, RaiseMouseEnter, RaiseMouseLeave, Reference, SetParametersAsync, Style, UICulture, UniqueID, Visible
- From ComponentBase: Assets, AssignedRenderMode, DispatchExceptionAsync, InvokeAsync, OnAfterRender, OnInitializedAsync, OnParametersSet, OnParametersSetAsync, RendererInfo, ShouldRender, StateHasChanged

