在流中保存和加载 Ink Canvas StrokeCollection

Sep*_*hrM 0 c# wpf serialization inkcanvas

我正在尝试在 WPF 中序列化墨水画布。所以我使用StrokeCollection.Save将笔画保存到MemoryStream. 但是当我尝试将流加载到InkCanvas我得到一个ArgumentException声明“ISF 数据的长度必须大于零”。
这是代码示例:

using (MemoryStream ms = new MemoryStream())
{
    inkcanvas.Strokes.Save(ms);
    inkcanvas.Strokes = new System.Windows.Ink.StrokeCollection(ms);
}
Run Code Online (Sandbox Code Playgroud)

我在这里缺少什么?

VMA*_*Atm 5

你检查Position过你的流吗?

我认为将笔画保存到其中后,它将指向它的结尾。
尝试将位置重置为第一个字符,如下所示:

using (MemoryStream ms = new MemoryStream())
{
    inkcanvas.Strokes.Save(ms);
    ms.Position = 0;
    inkcanvas.Strokes = new System.Windows.Ink.StrokeCollection(ms);
}
Run Code Online (Sandbox Code Playgroud)