Skip to content
This repository was archived by the owner on May 5, 2021. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,18 @@ var signatureView = new SignaturePadView (this) {
BackgroundColor="Black" />
```

#### Need more control? Use the underlying SignaturePadCanvasView

```xml
<!-- xmlns:controls="clr-namespace:SignaturePad.Forms;assembly=SignaturePad.Forms" -->

<controls:SignaturePadCanvasView
x:Name="signatureView"
StrokeCompleted="SignatureChanged"
BackgroundColor="White"
StrokeColor="Black"
StrokeWidth="3" />
```
### Obtaining a Signature Image

The signature that was drawn on the canvas can be obtained as a image using the `GetImage(...)`
Expand Down
37 changes: 37 additions & 0 deletions samples/Sample.Forms/Samples/CanvasView.xaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:controls="clr-namespace:SignaturePad.Forms;assembly=SignaturePad.Forms"
x:Class="Samples.CanvasView"
Title="SignaturePadCanvasView">
<Grid x:Name="LayoutRoot" Padding="12">

<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="12" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>

<ContentView Padding="1" BackgroundColor="#B8860B">
<controls:SignaturePadCanvasView
x:Name="signatureView"
StrokeCompleted="SignatureChanged"
BackgroundColor="White"
StrokeColor="Black"
StrokeWidth="3" />
</ContentView>

<Button
x:Name="btnSave" Text="Save Vector" Clicked="SaveVectorClicked"
HorizontalOptions="Start" VerticalOptions="End" Grid.Row="2" />

<Button
x:Name="btnLoad" Text="Load Vector" Clicked="LoadVectorClicked"
HorizontalOptions="Center" VerticalOptions="End" Grid.Row="2" />

<Button
x:Name="btnSaveImage" Text="Save Image" Clicked="SaveImageClicked"
HorizontalOptions="End" VerticalOptions="End" Grid.Row="2" />

</Grid>
</ContentPage>
61 changes: 61 additions & 0 deletions samples/Sample.Forms/Samples/CanvasView.xaml.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SignaturePad.Forms;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;

namespace Samples
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class CanvasView : ContentPage
{
private Point[] points;
public CanvasView ()
{
InitializeComponent ();
UpdateControls ();
}

private void UpdateControls ()
{
btnSave.IsEnabled = !signatureView.IsBlank;
btnSaveImage.IsEnabled = !signatureView.IsBlank;
btnLoad.IsEnabled = points != null;
}

private void SaveVectorClicked (object sender, EventArgs e)
{
points = signatureView.Points.ToArray ();
UpdateControls ();

DisplayAlert ("Signature Pad", "Vector signature saved to memory.", "OK");
}

private void LoadVectorClicked (object sender, EventArgs e)
{
signatureView.Points = points;
}

private async void SaveImageClicked (object sender, EventArgs e)
{
bool saved;
using (var bitmap = await signatureView.GetImageStreamAsync (SignatureImageFormat.Png, Color.Black, Color.White, 1f))
{
saved = await App.SaveSignature (bitmap, "signature.png");
}

if (saved)
await DisplayAlert ("Signature Pad", "Raster signature saved to the photo library.", "OK");
else
await DisplayAlert ("Signature Pad", "There was an error saving the signature.", "OK");
}

private void SignatureChanged (object sender, EventArgs e)
{
UpdateControls ();
}
}
}
1 change: 1 addition & 0 deletions samples/Sample.Forms/Samples/MainPage.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@

<local:BindingPage Title="Data Binding" />

<local:CanvasView Title="CanvasView" />
</TabbedPage>
6 changes: 6 additions & 0 deletions samples/Sample.Forms/Samples/Samples.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,10 @@
<PackageReference Include="Xamarin.Forms" Version="2.5.0.280555" />
</ItemGroup>

<ItemGroup>
<EmbeddedResource Update="CanvasView.xaml">
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
</EmbeddedResource>
</ItemGroup>

</Project>