Skip to content

DraggableWidget

Namespace: Hex1b.Widgets

Assembly: Hex1b.dll

A widget that makes its child tree draggable via mouse interaction. The builder lambda receives a with the current drag state so the content can render differently while being dragged.

csharp
public sealed record DraggableWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<DraggableWidget>

Inheritance

ObjectHex1bWidgetDraggableWidget

Implements

Constructors

DraggableWidget(object, Func<DraggableContext, Hex1bWidget>)

A widget that makes its child tree draggable via mouse interaction. The builder lambda receives a with the current drag state so the content can render differently while being dragged.

Parameters:

csharp
public DraggableWidget(object DragData, Func<DraggableContext, Hex1bWidget> Builder)

Properties

Builder

Returns: Func<DraggableContext, Hex1bWidget>

csharp
public Func<DraggableContext, Hex1bWidget> Builder { get; init; }

DragData

Returns: Object

csharp
public object DragData { get; init; }

Methods

DragOverlay(Func<DraggableContext, Hex1bWidget>)

Sets a builder for the drag overlay — a visual representation that follows the cursor during drag.

Parameters:

Returns: DraggableWidget

csharp
public DraggableWidget DragOverlay(Func<DraggableContext, Hex1bWidget> builder)

Examples

csharp
ctx.Draggable("task-1", dc =>
    dc.Border(dc.Text(dc.IsDragging ? "Dragging..." : "Task 1"))
)
.DragOverlay(dc => dc.Text("📋 Task 1"))

Released under the MIT License.