Silverlight 5 のキャンバスに Undo-Redo 操作を実装しようとしています。このため、各操作の後にキャンバスをスタックに保存し、元に戻す操作またはやり直し操作で、既存のキャンバスを既存のキャンバスに置き換えたいと考えています。スタック。
直面している問題は、現在のキャンバスを一時変数と同一視すると、新しいコピーが作成されず、両方のキャンバス変数が同じキャンバスを参照することです。つまり、一方で行われた変更が他方に反映されます。これは、現在のキャンバスを変更し、元に戻して一時キャンバス (操作が実行される前に現在のキャンバスと同等であった) に置き換えると問題が発生し、一時キャンバスは前のキャンバス (つまり現在のキャンバス) で行われた変更も取得します。 .
キャンバスを個別にコピーするにはどうすればよいですか?? 助けてください。
以下のように初期化しています。
Canvas temp = new Canvas();
temp = currentCanvas;