我有一個Windows 10 UWP應用程序,可以在Windows 10 Mobile上運行。我的要求是從用戶那裏獲取簽名。到目前爲止,我只是在XAML中使用InkCanvas,並將它連接到我的代碼後面。使用WCF調用發送InkCanvas簽名
然後我有一個按鈕,點擊後,將在InkCanvas上簽名並通過WCF調用將其發送到服務器。服務器和WCF服務已經存在。它將簽名圖像作爲base64序列化字符串。
我知道如何獲得base64,一旦我有一個圖像或字節數組。但是,在我閱讀的許多小時內,我發現文章/示例是爲WPF或Windows 8.1編寫的,而不適用於Windows 10 UWP。另外,在我發現的例子中,我的唯一選擇是將簽名保存爲GIF文件。
我看到,我可以打電話GetStrokes()這樣的
var strokeCollection = cvsSignature.InkPresenter.StrokeContainer.GetStrokes();
將返回我InkStroke的只讀列表。我想我可以遍歷該列表並構建一個字節數組?我會怎麼做?看來這不是有效的?
否則,我想我可以只是將文件流中的流更改爲內存流,但我猜這是不可能的,或者我錯過了一些東西。我想這
using (var inkMemStream = new MemoryStream())
{
await cvsSignature.InkPresenter.StrokeContainer.SaveAsync(inkMemStream);
}
但隨着這種類型的方法,我感到我無法從System.IO.MemoryStream轉換爲Windows.Storage.Streams.IOutputStream
感謝例外!
感謝您的詳細示例。我會進一步研究。然而,作爲一個評論,我無法將我的頭圍繞在我必須保存到文件然後從文件中讀取以執行我想要做的事實上。這是一種糟糕且成本高昂的方法,對於不需要首先保存到文件的應用程序而言是不適合的。我很驚訝InkCanvas類省去了直接保存到內存的功能。 –