Signature Pad makes capturing, saving, exporting, and displaying signatures extremely simple on Xamarin.iOS, Xamarin.Android and Windows.
Not only is Signature Pad available for native apps, but also available in Xamarin.Forms apps.
Signature Pad can be installed from NuGet.org for native Xamarin and Windows apps:
nuget install Xamarin.Controls.SignaturePad
And also for Xamarin.Forms apps:
nuget install Xamarin.Controls.SignaturePad.Forms
using Xamarin.Controls;
var signatureView = new SignaturePadView (View.Frame) {
StrokeWidth = 3f,
StrokeColor = UIColor.Black,
BackgroundColor = UIColor.White,
};
using Xamarin.Controls;
var signatureView = new SignaturePadView (this) {
StrokeWidth = 3f,
StrokeColor = Color.White,
BackgroundColor = Color.Black
};
<!-- xmlns:controls="using:Xamarin.Controls" -->
<controls:SignaturePad
x:Name="signatureView"
StrokeWidth="3"
StrokeColor="White"
Background="Black" />
<!-- xmlns:controls="clr-namespace:SignaturePad.Forms;assembly=SignaturePad.Forms" -->
<controls:SignaturePadView
x:Name="signatureView"
StrokeWidth="3"
StrokeColor="BlackWhite"
BackgroundColor="Black" />
The signature that was drawn on the canvas can be obtained as a image using the GetImage(...)
method overloads. The resulting image will be in the native platform image type:
// iOS
UIImage image = signatureView.GetImage ();
// Android
Bitmap image = signatureView.GetImage ();
// Windows
WriteableBitmap bitmap = signatureView.GetImage ();
For Xamarin.Forms, there is no "native" image format, but GetImageStreamAsync
can be used instead
to retrieve an encoded (jpeg or png) image stream:
Stream bitmap = await signatureView.GetImageStreamAsync (SignatureImageFormat.Png);
In addition to retrieving the signature as an image, the signature can also be retrieved as as an array of points:
var strokes = signatureView.Strokes;
These strokes can be used to save and restore a signature:
// restore strokes (iOS, Android, Windows)
signatureView.LoadStrokes (newStrokes);
// restore strokes (Xamarin.Forms)
signatureView.Strokes = newStrokes;
The license for this repository is specified in LICENSE.
This project is part of the .NET Foundation.