我被一些我無法弄清楚的東西卡住了。列表中的最後一項是覆蓋
我的位圖添加到它當鼠標向下
List<Image> ChangeHistory = new List<Image>();
int ChangeHistoryIndex = 0;
private void canvas_MouseDown(object sender, MouseEventArgs e)
{
ChangeHistoryIndex = ChangeHistory.Count - 1;
if (canvas.Image != null)
{
ChangeHistory.Add(canvas.Image);
}
MouseIsDown = true;
}
這是撤消按鈕事件,如果是點擊了變更記錄的所有項目都是相同的。
private void Undo_Click(object sender, EventArgs e)
{
ChangeHistoryIndex--;
if(ChangeHistoryIndex != 0)
{
canvas.Image = ChangeHistory[ChangeHistoryIndex];
}
}
我真的搞不明白。
謝謝。
上的MouseDown添加圖像後,你應該改變ChangeHistoryIndex。 –
備註:撤消堆棧應該通過深層克隆或動作回放來實現。用「List.Add」添加對活動對象的引用不起作用。 –