Fermer

janvier 25, 2022

Dessiner et enregistrer des signatures dans les applications Xamarin.Forms


Bonjour à tous 🙋‍♀️ et bonne année. La première version de l'interface utilisateur Telerik pour Xamarin pour 2022 est ici avec un tout nouveau contrôle. Désormais, vous pouvez facilement dessiner une signature dans vos applications mobiles et de bureau à l'aide du Telerik SignaturePad pour Xamarin.Forms. Attendez, ce n'est pas tout. Nous avons également une API d'enregistrement flexible afin que vous puissiez exporter la signature au format PNG ou JPEG. 👌

Dans cet article de blog, je vais vous montrer en détail toutes les fonctionnalités, personnalisations et options d'enregistrement disponibles dans le contrôle. Et, bien sûr, à la fin, une application de démonstration avec SignaturePad en action. 😉

signature pour xamarin

Une explication détaillée de la façon de démarrer avec le contrôle peut être trouvée dans la documentation Telerik SignaturePad pour Xamarin.

Configurer la signature

Facilement configurez la signature comme vous le souhaitez. Modifiez la couleur et l'épaisseur du trait de signature à l'aide des propriétés StrokeColor et StrokeThicknessainsi que la couleur d'arrière-plan à l'aide de la propriété BackgroundColor.

De plus, il y a une bordure. qui enveloppe la signature. Vous pouvez entièrement personnaliser son apparence à l'aide des propriétés suivantes :

  • BorderColor
  • BorderThickness
  • CornerRadius

configurer la signature dans votre application

La vidéo montre l'exemple de configuration du SignaturePad. Vous pouvez trouver le code source dans le Telerik Xamarin Samples GitHub repo.

Enregistrer la signature en tant qu'image

L'API d'enregistrement flexible vous permet d'exporter la signature au format PNG ou JPEG via la méthode SaveImageAsyng. La méthode a deux surcharges :

  • SaveImageAsync(Stream outputStream)
  • SaveImageAsync(Stream outputStream, SaveImageSettings settings)

La classe SaveImageSettings[13] options d'économie supplémentaires. Lors de l'exportation de la signature sous forme d'image, vous pouvez modifier le format de l'image, la couleur d'arrière-plan, la qualité et l'échelle, ainsi que la couleur et l'épaisseur du trait de la signature.

Exportons la signature au format JPEG et enregistrons-la en haute qualité. Notre structure XAML :

  • SignaturePad pour dessiner la signature
  • RadButton pour exporter la signature sous forme d'image et l'enregistrer en haute qualité
  • Image pour afficher l'image exportée

enregistrer la signature dans l'application xamarin

Events and Clear Command

Le SignaturePad expose l'événement StrokeStarted pour déterminer quand un nouveau trait est commencé et l'événement StrokeCompleted lorsque le trait est terminé.

Vous pouvez effacer la signature dessinée à l'aide de ClearCommand. Lorsque la surface est effacée, un autre événement est déclenché : Événement Effacé.

Heure de la démo

Dans la démo, j'ajouterai un contrôle SignaturePad, un bouton qui m'aidera à effacer la signature dessinée et une étiquette qui affichera l'affichage en temps réel lors du dessin de la signature.

D'abord le résultat final, puis la mise en œuvre. 😍

signature pour la démo Xamarin

Voici la définition XAML :

L'espace de noms utilisé en XAML :

Et le code-behind avec la logique d'enregistrement de la signature en tant qu'image et les événements StrokeStarted et StrokeCompleted de SignaturePad :

private void RadSignaturePad_StrokeStarted(object ]expéditeur, EventArgs e)

{

ce. .Now.ToString();

}

privé void RadSignaturePad_StrokeCompleted(objet expéditeur, EventArgs e) expéditeur, EventArgs e) ]{

ceci.timeStampLabel.Text = DateTime.Now.ToString();[2]96590 } Void RadsignaturePad_Cleared ( Sender, Eventargs e)

[1945902] {

ceci.timeStampLabel.Text = "";[0][6] 19659002] this.savedSignatrue.Source = null;

Private Async Void RADBUTTON_CLICKED ( Sender, eventargs e) {

var settings = new SaveImageSettings( )

{

ImageFormat = imageFormat.jpeg,

Souchefactor = 0,7, ImageQuality = 1,

Couleur de fond = Color.LightGray,[19415902] ] StrokeColor = Couleur.

} ;

octet[] tableau ;

en utilisant




Source link