Agile.Maui.SignaturePad
1.0.2
dotnet add package Agile.Maui.SignaturePad --version 1.0.2
NuGet\Install-Package Agile.Maui.SignaturePad -Version 1.0.2
<PackageReference Include="Agile.Maui.SignaturePad" Version="1.0.2" />
<PackageVersion Include="Agile.Maui.SignaturePad" Version="1.0.2" />
<PackageReference Include="Agile.Maui.SignaturePad" />
paket add Agile.Maui.SignaturePad --version 1.0.2
#r "nuget: Agile.Maui.SignaturePad, 1.0.2"
#:package Agile.Maui.SignaturePad@1.0.2
#addin nuget:?package=Agile.Maui.SignaturePad&version=1.0.2
#tool nuget:?package=Agile.Maui.SignaturePad&version=1.0.2
<div align="center">
Agile.Maui
<img src="agile.png" alt="Agile.Maui" width="160" />
Native, modular components for .NET MAUI
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
WebViewand 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
VirtualizedCollectionViewuses native handlers and virtualization to reduce cost on large lists.PdfViewerrenders pages on demand and provides a configurable cache/prefetch.GalleryViewandImageViewuse native per-platform loading and cache where applicable.SignaturePadstores 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, orAgile.Maui.SignaturePad. - For bundled PDFs, use
MauiAssetand 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
- GalleryView and ImageView
- PDFViewer and PdfReaderView
- VirtualizedCollectionView
- ChipGroup
- SignaturePad
- Sample application
- Performance tuning
- Android profiling of VirtualizedCollectionView
License
Distributed under the MIT license.
Support
Use the repository issue tracker to report bugs, ask questions, or suggest new features.
| Product | Versions 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. |
-
net10.0-android36.0
- Microsoft.Maui.Controls (>= 10.0.70)
-
net10.0-ios26.0
- Microsoft.Maui.Controls (>= 10.0.70)
-
net10.0-maccatalyst26.0
- Microsoft.Maui.Controls (>= 10.0.70)
-
net10.0-windows10.0.19041
- Microsoft.Maui.Controls (>= 10.0.70)
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 | 95 | 6/9/2026 |