如何保存用户绘制的画布内容?

时间:2013-05-14 07:03:42

标签: c# serialization windows-8 deserialization

我遇到以下问题:

我正在尝试保存应用程序的内容。内容通过用户在画布上绘制。 示例:

用户可能会点击按钮来绘制椭圆等

单击按钮后,图形将显示在画布上。

我想在画布上保存用户绘制的内容。任何人都可以给我一个提示。 如果我使用序列化和反序列化是否好?

使用visual studio 2012,Windows 8 app

在C#中编写代码

1 个答案:

答案 0 :(得分:2)

有几种方法可以解决这个问题:

  1. 保存用户的每个操作 - 就像撤消/重做堆栈一样。非常灵活但文件可以变得非常大。在这种情况下,您将序列化一堆命令。要加载命令,必须重播。

  2. 保存绘图的逻辑结构 - 就像Html或SVG一样。没有撤消/重做支持,但较小的文件。在这种情况下,您将序列化文档模型。

  3. 在操作后保存每个结果位图 - 比1.和2.更容易实现,但更难支持元素编辑。没有.NET对象的序列化只是很多位图。

  4. 每种方法都有其优点和缺点。