Sharpnado.DragDropGridView is a high-performance .NET MAUI control with automatic grid arrangement, adaptive item sizing, and drag-and-drop reordering. Features include ItemsSource/DataTemplate binding, automatic column calculation, configurable spacing and padding, responsive orientation handling, and smooth drag-and-drop with visual feedback. Pure cross-platform implementation with no platform-specific code. Perfect for building draggable tile grids, reorderable galleries, and adaptive collections.
$ dotnet add package Sharpnado.Maui.DragDropGridView
A high-performance drag-and-drop grid layout control for .NET MAUI with adaptive sizing, configurable gesture triggers, and flexible item management.
dotnet add package Sharpnado.Maui.DragDropGridView
using Sharpnado.Maui.DragDropGridView;
public static class MauiProgram
{
public static MauiApp CreateMauiApp()
{
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.UseSharpnadoDragDropGridView(enableLogging: false);
return builder.Build();
}
}
xmlns:gridLayout="clr-namespace:Sharpnado.Maui.DragDropGridView;assembly=Sharpnado.Maui.DragDropGridView"
<ScrollView>
<gridLayout:DragDropGridView
ColumnCount="2"
ColumnSpacing="10"
RowSpacing="10"
IsDragAndDropEnabled="True"
DragAndDropTrigger="LongPress"
ItemsSource="{Binding Items}">
<gridLayout:DragDropGridView.ItemTemplate>
<DataTemplate>
<gridLayout:DragAndDropView>
<Border Padding="10" Background="LightGray">
<Label Text="{Binding Name}" />
</Border>
</gridLayout:DragAndDropView>
</DataTemplate>
</gridLayout:DragDropGridView.ItemTemplate>
</gridLayout:DragDropGridView>
</ScrollView>
using Sharpnado.Maui.DragDropGridView;
// In your view or code-behind
gridView.DragAndDropItemsAnimation = DragDropAnimations.Items.WobbleAsync;
gridView.DragAndDropEndItemsAnimation = DragDropAnimations.EndItems.StopWobbleAsync;
gridView.LongPressedDraggingAnimation = DragDropAnimations.Dragging.ScaleUpBounceAsync;
gridView.LongPressedDroppingAnimation = DragDropAnimations.Dropping.ScaleToBounceAsync;
Full documentation available at: GitHub Repository
| Property | Description |
|---|---|
ItemsSource | Collection of items to display |
ItemTemplate | Template for rendering each item |
ColumnCount | Number of columns in the grid |
IsDragAndDropEnabled | Enable/disable drag-and-drop |
DragAndDropTrigger | Pan or LongPress gesture trigger |
OnItemsReorderedCommand | Command executed when items are reordered |
DragDropAnimations.Dragging
ScaleUpAsync, ScaleUpLargeAsync, ScaleUpBounceAsyncDragDropAnimations.Dropping
ScaleToNormalAsync, ScaleToBounceAsyncDragDropAnimations.Items
WobbleAsync, StopWobbleAsyncMIT License - see LICENSE for details
Developed by Jean-Marie Alfonsi (Sharpnado)
Report issues or request features at: GitHub Issues