Olá, neste post irei demonstrar como a sua aplicação Xamarin.Forms pode ter a opção de ler uma assinatura.
Para este exemplo irei assumir que você já criou sua aplicação Xamarin.Forms, caso possua alguma dúvida sobre isso, recomendo ler o post Criando um projeto Xamarin.Forms.
ADICIONANDO O NUGET PACKAGE
Clique com o botão direito em cima de sua Solution e selecione “Manage NuGet Packages for Solution…”.
Digite “Xamarin.Controls.SignaturePad.Forms” e selecione o plugin como demonstrado na imagem a seguir.
Selecione todos os projetos e clique no botão “Install”.
Xaml
Comece referenciando o namespace do SignaturePad.Forms, em seguida adicione um SignaturePadView e edite algumas de suas propriedades, como por exemplo:
- StrokeWidth – Espessura do texto.
- StrokeColor – Cor do texto.
- CaptionText – Texto que aparecerá em baixo da linha.
<?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:forms="clr-namespace:SignaturePad.Forms;assembly=SignaturePad.Forms" | |
x:Class="SignaturePadDemo.MainPage"> | |
<StackLayout> | |
<forms:SignaturePadView StrokeWidth="5" | |
WidthRequest="280" | |
HeightRequest="350" | |
BackgroundColor="White" | |
StrokeColor="Black" | |
CaptionText="Assinatura" | |
x:Name="Pad"> | |
</forms:SignaturePadView> | |
<Button Clicked="Save" Text="Save"/> | |
</StackLayout> | |
</ContentPage> |
C#
Para salvar a assinatura em forma de imagem, utilize o método GetImageStreamAsync que retorna um Stream.
public async void Save(object sender, EventArgs eventArgs) | |
{ | |
Stream stream = await Pad.GetImageStreamAsync(SignatureImageFormat.Jpeg); | |
} |
Resultado
Android
iOS
Esse e todos os exemplos deste blog encontram-se disponíveis no GitHub.
Me salvou mais uma vez.. valeu!!!
CurtirCurtido por 1 pessoa
Que bom 😀 😀
CurtirCurtir
Obrigado!
CurtirCurtir
Boa noite. Esse código roda perfeitamente. Mas tenho uma dúvida. Onde a imagem é salva? No próprio dispositivo? Dá pra chamar um webservice atraves desse resultado e enviar a imagem por exemplo? Saberia me dizer? Obg
CurtirCurtir
Olá Robson, este exemplo não está salvando a imagem. Caso você queira salvar recomendo você converter o Stream para Byte[] e salvar utilizando “System.IO.File.WriteAllBytes”.
Caso você queira enviar para o webservice, recomendo converter a imagem para Base64. Espero ter ajudado
CurtirCurtir