前提・実現したいこと
C# wpfにてペイントソフトを作ろうと思っています。
実現したいことはペンで書いたり、四角や丸を描写したことをUndo/Redoできるようにしたいと思っています。
Undo/Redoは書いたこと、消したこと、塗りつぶしたことなどInkCanvasで起こったことすべての動作を記憶したいです。
Undo/Redoできる回数は何回でもいいですが、10回程度を想定しています。
現在、ペンはInkCanvasのInkCanvasEditingMode.Inkを、四角や丸はRectangleやEllipseでInkCanvas.Children.Addしています。
発生している問題・エラーメッセージ
C#を勉強して、2週間ほどなので使い方が正しいかどうか分からないのですが、
想定したやり方は2つです。
1.スタックを使ってInkCanvas自体を記録
Stack<InkCanvas> ~ = new Stack<InkCanvas>();
で現在のInkCanvasの状態を丸々スタックできないかと思ったのですが、できなかったです。
2.Listを使って、書いたものすべてを記録(他サイトのものを参考)
penはStroke、四角や丸はObjectなので一緒に保存ができないので書いた順番をどう記録したいか分からなかったです。
長くなりましたが、上記の方法できるあるいは他の方法でもいいので良い案があれば、ぜひお力添えお願いします。
補足情報(FW/ツールのバージョンなど)
・Visual Studio2019
回答1件
あなたの回答
tips
プレビュー