Windows 10 Mobile에서 실행되는 Windows 10 UWP 앱이 있습니다. 내가 가진 요구 사항은 사용자로부터 서명을 포착하는 것입니다. 지금까지 XAML에서 InkCanvas를 사용하고 코드에 연결했습니다.WCF 통화를 사용하여 InkCanvas 서명 보내기
다음 버튼을 클릭하면 InkCanvas에서 서명을 받아 WCF 호출을 통해 서버로 전송됩니다. 서버 및 WCF 서비스가 이미 있습니다. 서명 이미지를 base64 serialize 된 문자열로 사용합니다.
일단 이미지 나 바이트 배열이 있으면 base64를 얻는 방법을 알고 있습니다. 그러나 많은 시간을 읽으면서 기사/예제가 WPF 또는 Windows 8.1 용으로 작성되었으며 Windows 10 UWP에서 작동하지 않는다는 사실을 발견했습니다. 또한 작동하는 것으로 밝혀진 예제 중 GIF로 파일에 서명을 저장하는 것이 유일한 방법 인 것 같습니다.
은 내가 나에게 InkStroke의 읽기 전용 목록을 반환하는이
var strokeCollection = cvsSignature.InkPresenter.StrokeContainer.GetStrokes();
같은 GetStrokes()를 호출 할 수있는 것을 알 수있다. 그 목록을 반복하고 바이트 배열을 만들 수있을 것 같아요? 내가 어떻게 그럴 수 있니? 이것이 효율적이지 않은 것 같습니까?
그렇지 않으면 스트림을 파일 스트림에서 메모리 스트림으로 변경할 수 있다고 생각했지만 가능하지 않거나 뭔가 빠졌습니다. 나는 시도하고이
using (var inkMemStream = new MemoryStream())
{
await cvsSignature.InkPresenter.StrokeContainer.SaveAsync(inkMemStream);
}
그러나 나는
감사를 Windows.Storage.Streams.IOutputStream하는 System.IO.MemoryStream에서 변환 할 수없는 예외가 접근 이러한 유형의 !
자세한 사례를 가져 주셔서 감사합니다. 나는 이것을 더 깊이 조사 할 것이다. 그러나 주석 으로서는 파일에 저장 한 다음 파일에서 읽고 내가하고 싶은 것을하기 위해 머리를 감쌀 수 없습니다. 이는 처음에는 파일에 저장할 필요가없는 응용 프로그램의 경우 예상치 못한 가난하고 값 비싼 방식입니다. InkCanvas 클래스가 메모리에 직접 저장하는 기능을 사용하지 않는다는 사실에 놀랐습니다. –