将 Ink Canvas StrokeCollection 保存到流/从流中加载

Posted

技术标签:

【中文标题】将 Ink Canvas StrokeCollection 保存到流/从流中加载【英文标题】:Save and load Ink Canvas StrokeCollection to/from stream 【发布时间】:2021-10-26 23:37:41 【问题描述】:

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

using (MemoryStream ms = new MemoryStream())

    inkcanvas.Strokes.Save(ms);
    inkcanvas.Strokes = new System.Windows.Ink.StrokeCollection(ms);

我在这里错过了什么?

【问题讨论】:

【参考方案1】:

您是否检查了您的信息流的Position

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

using (MemoryStream ms = new MemoryStream())

    inkcanvas.Strokes.Save(ms);
    ms.Position = 0;
    inkcanvas.Strokes = new System.Windows.Ink.StrokeCollection(ms);

【讨论】:

以上是关于将 Ink Canvas StrokeCollection 保存到流/从流中加载的主要内容,如果未能解决你的问题,请参考以下文章

INK Blockchain Explorer首发上线,Ink生态迎来区块链浏览器

波卡周报 | Sub0 开发者大会将带来平行链桥ink! 3.0Substrate 生态的最新进展

桌面粉笔功能.有window ink功能区开启的快捷键

重磅 | INK Blockchain Explorer首发上线

ink格式文件怎么打开?

CS Ink钓鱼