Agile.Maui.Gallery 1.0.2

dotnet add package Agile.Maui.Gallery --version 1.0.2
                    
NuGet\Install-Package Agile.Maui.Gallery -Version 1.0.2
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Agile.Maui.Gallery" Version="1.0.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Agile.Maui.Gallery" Version="1.0.2" />
                    
Directory.Packages.props
<PackageReference Include="Agile.Maui.Gallery" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Agile.Maui.Gallery --version 1.0.2
                    
#r "nuget: Agile.Maui.Gallery, 1.0.2"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Agile.Maui.Gallery@1.0.2
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Agile.Maui.Gallery&version=1.0.2
                    
Install as a Cake Addin
#tool nuget:?package=Agile.Maui.Gallery&version=1.0.2
                    
Install as a Cake Tool

<div align="center">

Agile.Maui

<img src="agile.png" alt="Agile.Maui" width="160" />

Native, modular components for .NET MAUI

Gallery NuGet PDF NuGet Virtualized NuGet ChipGroup NuGet SignaturePad NuGet

.NET MAUI Platforms License

ImageView / GalleryView | PdfViewer / PdfReaderView | VirtualizedCollectionView | ChipGroup | SignaturePad

Overview | Features | Projects | Platforms | Documentation

</div>

A .NET MAUI component library with native implementations for Android, iOS, macOS Catalyst, and Windows. The current solution is modular: each component lives in its own project/package, but they all share the C# namespace Agile.Maui.

Overview

Agile.Maui is a collection of native MAUI controls for common mobile and desktop app scenarios: zoomable images, galleries, PDF reading, virtualized lists, chip-based selections, and signature capture. Each module can be installed separately, so the app consumes only what it uses.

Why use it

  • Native controls per platform; the PDF viewer does not rely on WebView and images use native views.
  • Independent packages sharing the same C# namespace.
  • Bindable APIs for XAML and MVVM.
  • Platform-specific handlers for Android, iOS, macOS Catalyst, and Windows.
  • Sample app and per-component documentation.

Features

Module Key features
Agile.Maui.Gallery ImageView with zoom/fullscreen on supported platforms and GalleryView with image navigation.
Agile.Maui.Pdf Base PdfViewer and a ready-to-use PdfReaderView with search, print/share, zoom, thumbnails, and navigation.
Agile.Maui.VirtualizedCollection High-performance virtualized list for large volumes of items.
Agile.Maui.ChipGroup Chip selection control with single/multiple selection and wrap, horizontal, or vertical layout modes.
Agile.Maui.SignaturePad Freehand signature capture with vector strokes, pressure metadata, undo/redo, and PNG/JPEG export.

Requirements

  • .NET MAUI / .NET 10.0.
  • Android, iOS, macOS Catalyst, or Windows.
  • Registration of the package used in MauiProgram.cs.

Projects

Project Package / Assembly Components Documentation
GalleryView Agile.Maui.Gallery ImageView, GalleryView docs/GalleryView.md
PDFViewer Agile.Maui.Pdf PdfViewer, PdfReaderView docs/PDFViewer.md
VirtualizedCollectionView Agile.Maui.VirtualizedCollection VirtualizedCollectionView docs/VirtualizedCollectionView.md
ChipGroup Agile.Maui.ChipGroup ChipGroup docs/ChipGroup.md
SignaturePad Agile.Maui.SignaturePad SignaturePad docs/SignaturePad.md
sample sample application demos of all components docs/Sample.md

Controls_old is a legacy copy of the old monolithic project and is not part of the active solution.

Installation

Install only the packages your application actually uses:

dotnet add package Agile.Maui.Gallery
dotnet add package Agile.Maui.Pdf
dotnet add package Agile.Maui.VirtualizedCollection
dotnet add package Agile.Maui.ChipGroup
dotnet add package Agile.Maui.SignaturePad

Then register the handlers in MauiProgram.cs:

using Agile.Maui;

builder
    .UseMauiApp<App>()
    .UseAgileGalleryView()
    .UseAgilePdfViewer()
    .UseAgileVirtualizedCollectionView()
    .UseAgileChipGroup()
    .UseAgileSignaturePad();

Each method is independent. If the application uses only PDF, for example, call only UseAgilePdfViewer().

XAML

The C# namespace is the same, but the XAML assembly changes per package:

xmlns:gallery="clr-namespace:Agile.Maui;assembly=Agile.Maui.Gallery"
xmlns:pdf="clr-namespace:Agile.Maui;assembly=Agile.Maui.Pdf"
xmlns:virtualized="clr-namespace:Agile.Maui;assembly=Agile.Maui.VirtualizedCollection"
xmlns:chips="clr-namespace:Agile.Maui;assembly=Agile.Maui.ChipGroup"
xmlns:signature="clr-namespace:Agile.Maui;assembly=Agile.Maui.SignaturePad"

Example:

<gallery:ImageView Source="photo" />
<gallery:GalleryView Images="{Binding Photos}" />
<pdf:PdfViewer Source="{Binding PdfPath}" />
<pdf:PdfReaderView Source="manual.pdf" />
<virtualized:VirtualizedCollectionView ItemsSource="{Binding Items}" />
<chips:ChipGroup ItemsSource="{Binding Categories}" LayoutMode="Horizontal" />
<signature:SignaturePad StrokeColor="#111111" />

Platforms

Component Android iOS / MacCatalyst Windows
ImageView Android.Widget.ImageView + Glide + native fullscreen zoom UIImageView + UIScrollView fullscreen Microsoft.UI.Xaml.Controls.Image
GalleryView ViewPager2 + RecyclerView paginated UIScrollView + UIPageControl FlipView
PdfViewer PdfRenderer for rendering + PDFium for text/search PdfKit.PdfView PDFium
VirtualizedCollectionView RecyclerView UICollectionViewCompositionalLayout MAUI CollectionView
ChipGroup MAUI FlexLayout / horizontal ScrollView MAUI FlexLayout / horizontal ScrollView MAUI FlexLayout / horizontal ScrollView
SignaturePad MAUI GraphicsView + native MotionEvent pressure input MAUI GraphicsView + native UITouch pressure input MAUI GraphicsView + native pointer pressure input

Performance

  • VirtualizedCollectionView uses native handlers and virtualization to reduce cost on large lists.
  • PdfViewer renders pages on demand and provides a configurable cache/prefetch.
  • GalleryView and ImageView use native per-platform loading and cache where applicable.
  • SignaturePad stores strokes as vector data and exports images on demand.

Troubleshooting

  • If a control does not render, confirm that the corresponding UseAgile...() method was called.
  • If XAML cannot find the control, check the assembly in the namespace, such as Agile.Maui.Pdf, Agile.Maui.Gallery, Agile.Maui.VirtualizedCollection, Agile.Maui.ChipGroup, or Agile.Maui.SignaturePad.
  • For bundled PDFs, use MauiAsset and refer to docs/PDFViewer.md.

Structure

Agile.Maui.slnx
GalleryView/
PDFViewer/
VirtualizedCollectionView/
ChipGroup/
SignaturePad/
sample/
docs/
TUNING.md
PROFILING.md

Build

dotnet build
dotnet build -f net10.0-android
dotnet build -f net10.0-ios
dotnet build -f net10.0-maccatalyst
dotnet build -f net10.0-windows10.0.19041.0

Additional documentation

License

Distributed under the MIT license.

Support

Use the repository issue tracker to report bugs, ask questions, or suggest new features.

Product Compatible and additional computed target framework versions.
.NET net10.0-android36.0 is compatible.  net10.0-ios26.0 is compatible.  net10.0-maccatalyst26.0 is compatible.  net10.0-windows10.0.19041 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.2 96 6/9/2026
1.0.1 103 6/8/2026
1.0.0 102 6/5/2026