保存并加载 Ink Canvas StrokeCollection to/from 流
Save and load Ink Canvas StrokeCollection to/from stream
我正在尝试在 WPF 中序列化墨迹 canvas。所以我使用 StrokeCollection.Save
将笔画保存到 MemoryStream
。但是当我尝试将流加载到 InkCanvas
时,我得到一个 ArgumentException
说明 "The length of the ISF data must be greater than zero."
这是代码示例:
using (MemoryStream ms = new MemoryStream())
{
inkcanvas.Strokes.Save(ms);
inkcanvas.Strokes = new System.Windows.Ink.StrokeCollection(ms);
}
我在这里错过了什么?
你检查过你的流的 Position
了吗?
我觉得把笔画存进去之后会指向笔画的结尾
尝试将位置重置为第一个字符,如下所示:
using (MemoryStream ms = new MemoryStream())
{
inkcanvas.Strokes.Save(ms);
ms.Position = 0;
inkcanvas.Strokes = new System.Windows.Ink.StrokeCollection(ms);
}
我正在尝试在 WPF 中序列化墨迹 canvas。所以我使用 StrokeCollection.Save
将笔画保存到 MemoryStream
。但是当我尝试将流加载到 InkCanvas
时,我得到一个 ArgumentException
说明 "The length of the ISF data must be greater than zero."
这是代码示例:
using (MemoryStream ms = new MemoryStream())
{
inkcanvas.Strokes.Save(ms);
inkcanvas.Strokes = new System.Windows.Ink.StrokeCollection(ms);
}
我在这里错过了什么?
你检查过你的流的 Position
了吗?
我觉得把笔画存进去之后会指向笔画的结尾
尝试将位置重置为第一个字符,如下所示:
using (MemoryStream ms = new MemoryStream())
{
inkcanvas.Strokes.Save(ms);
ms.Position = 0;
inkcanvas.Strokes = new System.Windows.Ink.StrokeCollection(ms);
}