我的 xamarin 表单应用程序中有一个签名板。用户在签名板上签名并移动到下一个屏幕。但是当用户返回签名板屏幕时,之前的签名会从签名板中删除。我如何设置签名不应该删除,直到用户在应用程序的当前状态下执行?
当用户移动到下一个屏幕时,我将签名值保存为字节数组。那么我可以在签名板上绑定这个字节数组来显示签名吗?
问候, 阿南德·杜贝
我的 xamarin 表单应用程序中有一个签名板。用户在签名板上签名并移动到下一个屏幕。但是当用户返回签名板屏幕时,之前的签名会从签名板中删除。我如何设置签名不应该删除,直到用户在应用程序的当前状态下执行?
当用户移动到下一个屏幕时,我将签名值保存为字节数组。那么我可以在签名板上绑定这个字节数组来显示签名吗?
问候, 阿南德·杜贝
由于这是 Xamarin Forms,我假设您使用的是 Allan Ritchie 的Acr.XamForms.SignaturePad
课程。
该类SignaturePadView
公开了一个方法:LoadDrawPoints
,它允许您将签名数据加载到视图中。由于这是一种方法,因此您无法真正对其进行数据绑定,但您可以将代码添加到托管视图以加载签名:
// NOTE: The below assumes that
// A) You're using MVVM (as you should :) )
// B) The ViewModel class name is MyViewModelClassName (change appropriately)
// C) The property on the VM that exposes the signature points is named SignaturePoints (change appropriately)
protected override OnAppearing() {
LoadSignature();
}
protected override OnBindingContextChanged() {
LoadSignature();
}
private void LoadSignature() {
var vm = this.BindingContext as MyViewModelClassName;
if (vm != null && vm.SignaturePoints != null) {
this.signaturePadView.LoadDrawPoints(vm.SignaturePoints);
}
}
最后,您提到您将签名保存为字节数组;上面的代码假设它是一个数组DrawPoint
,它是一对浮点数,所以你需要反转你当前正在进行的任何转换。