我正在为 var Asks = jsonresponse.pair_name.asks
实现撤消/重做功能,因此我需要在每次修改时将InkCanvas
的内容保存在列表(而不是文件)中。我目前正在InkCanvas
保存它,但由于它需要是一个实例,我不能在列表中使用它。有没有办法可以存储多个内容并在必要时检索?
答案 0 :(得分:1)
根据您对撤消/重做功能的要求,您可以使用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);
}
}