บันทึกและโหลด Ink Canvas StrokeCollection ไปยัง/จากสตรีม

ฉันกำลังพยายามทำให้ผืนผ้าใบหมึกเป็นอนุกรมใน WPF ฉันใช้ StrokeCollection.Save เพื่อบันทึกจังหวะเป็น MemoryStream แต่เมื่อฉันพยายามโหลดสตรีมลงใน InkCanvas ฉันได้รับ ArgumentException ที่ระบุว่า "ความยาวของข้อมูล ISF ต้องมากกว่าศูนย์"
นี่คือตัวอย่างโค้ด:

using (MemoryStream ms = new MemoryStream())
{
    inkcanvas.Strokes.Save(ms);
    inkcanvas.Strokes = new System.Windows.Ink.StrokeCollection(ms);
}

ฉันพลาดอะไรไปที่นี่?


person SepehrM    schedule 26.02.2015    source แหล่งที่มา


คำตอบ (1)


คุณได้ตรวจสอบ Position ของสตรีมของคุณหรือไม่ ?

ฉันคิดว่าหลังจากบันทึกเส้นขีดลงไปแล้ว มันจะชี้ไปที่จุดสิ้นสุดของมัน
ลองรีเซ็ตตำแหน่งเป็นอักขระตัวแรก เช่นนี้

using (MemoryStream ms = new MemoryStream())
{
    inkcanvas.Strokes.Save(ms);
    ms.Position = 0;
    inkcanvas.Strokes = new System.Windows.Ink.StrokeCollection(ms);
}
person VMAtm    schedule 26.02.2015