1

我遇到以下问题:

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

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

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

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

代码是使用 Visual Studio 2012、Windows 8 应用程序用 C# 编写的

4

1 回答 1

2

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

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

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

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

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

于 2013-05-14T08:08:36.313 回答