这可以用列表或数组保存inkstroke吗?

时间:2018-04-10 05:25:07

标签: uwp win-universal-app inkcanvas filesavepicker

我想知道如何使用数组或列表等方式保存墨迹。因为我想用索引变量制作inkcanvas的页面。

这样用户就可以使用索引自由移动页面。

例如,我想保存到目前为止绘制的所有墨迹(不是图像文件),只要我点击下一页按钮。

但现在我无法找到如何保存墨迹并打开保存的墨迹

我想保存文件名和位置而不使用Filesavepicker,以保持文件名和位置不变。这有可能吗?

1 个答案:

答案 0 :(得分:1)

  

我真的很想知道如何用数组或列表等方式保存墨迹。

您可以按InkStrokeContainer.GetStrokes方法获取InkStroke只读列表,并按照您希望的方式保存此集合。例如:

IReadOnlyList<InkStroke> strokes = inkCanvas.InkPresenter.StrokeContainer.GetStrokes();

更多详情请参阅Store and retrieve Windows Ink stroke data

如果您的目的是加载,可以考虑将笔划保存到文件,或选择所有笔划,然后复制到剪贴板进行粘贴。例如:

private void btnreadd_Click(object sender, RoutedEventArgs e)
{
    if (inkCanvas.InkPresenter.StrokeContainer.CanPasteFromClipboard())
    {
        inkCanvas.InkPresenter.StrokeContainer.PasteFromClipboard(new Windows.Foundation.Point(50, 50));
    } 
}


private void btncollect_Click(object sender, RoutedEventArgs e)
{  
    IReadOnlyList<InkStroke> strokes = inkCanvas.InkPresenter.StrokeContainer.GetStrokes();  
    foreach (var stroke in strokes)
    { 
        stroke.Selected = true;
    }
    inkCanvas.InkPresenter.StrokeContainer.CopySelectedToClipboard();
}