실행 취소/다시 실행 기능 요구 사항에 따라 AddStroke
및 DeleteSelected
메서드를 사용하여 실행 취소 또는 다시 실행하려는 획을 추가하거나 삭제할 수 있습니다. 여기 내 코드입니다, 당신은 참조 할 수 있습니다.
private List<InkStroke> undoList = new List<InkStroke>();
private void Undo(object sender, RoutedEventArgs e)
{
IReadOnlyList<InkStroke> inkList = inkCanvas.InkPresenter.StrokeContainer.GetStrokes();
if (inkList.Count > 0)
{
InkStroke undoStroke = inkList[inkList.Count - 1];
undoStroke.Selected = true;
undoList.Add(undoStroke.Clone());
inkCanvas.InkPresenter.StrokeContainer.DeleteSelected();
}
}
private void Redo(object sender, RoutedEventArgs e)
{
if (undoList.Count > 0)
{
InkStroke redoStroke = undoList[undoList.Count - 1];
inkCanvas.InkPresenter.StrokeContainer.AddStroke(redoStroke);
undoList.Remove(redoStroke);
}
}
업데이트가 있습니까? –