2017-11-15 1 views
0

InkCanvas에 실행 취소/다시 실행 기능을 구현 중이므로 수정 될 때마다 InkCanvas의 내용을 파일이 아닌 목록에 저장해야합니다. . 나는 현재 InMemoryRandomAccessStream에 저장하고 있지만 인스턴스가되어야하므로 목록에서 사용할 수 없습니다. 하나 이상의 콘텐츠를 저장하고 필요할 때 검색 할 수있는 방법이 있습니까?목록에 InkCanvas의 내용을 저장하는 방법

+0

업데이트가 있습니까? –

답변

1

실행 취소/다시 실행 기능 요구 사항에 따라 AddStrokeDeleteSelected 메서드를 사용하여 실행 취소 또는 다시 실행하려는 획을 추가하거나 삭제할 수 있습니다. 여기 내 코드입니다, 당신은 참조 할 수 있습니다.

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); 
    } 
} 
관련 문제