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 に答える