我正在尝试在WPF中序列化墨迹画布。所以我使用StrokeCollection.Save
将笔画保存到MemoryStream
。但是当我尝试将流加载到InkCanvas
时,我得到ArgumentException
说明“ISF数据的长度必须大于零。”
这是代码示例:
using (MemoryStream ms = new MemoryStream())
{
inkcanvas.Strokes.Save(ms);
inkcanvas.Strokes = new System.Windows.Ink.StrokeCollection(ms);
}
我在这里缺少什么?
答案 0 :(得分:4)
您是否检查过您的信息流的Position
?
我认为在将笔划保存到它之后,它将指向它的结尾 尝试将位置重置为第一个字符,如下所示:
using (MemoryStream ms = new MemoryStream())
{
inkcanvas.Strokes.Save(ms);
ms.Position = 0;
inkcanvas.Strokes = new System.Windows.Ink.StrokeCollection(ms);
}