2

我的 xamarin 表单应用程序中有一个签名板。用户在签名板上签名并移动到下一个屏幕。但是当用户返回签名板屏幕时,之前的签名会从签名板中删除。我如何设置签名不应该删除,直到用户在应用程序的当前状态下执行?

当用户移动到下一个屏幕时,我将签名值保存为字节数组。那么我可以在签名板上绑定这个字节数组来显示签名吗?

问候, 阿南德·杜贝

4

1 回答 1

4

由于这是 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,它是一对浮点数,所以你需要反转你当前正在进行的任何转换。

于 2016-07-06T12:47:52.297 回答