如何在uwp中使用ActiveCustomDrying时删除InkStroke?

时间:2018-01-25 05:49:54

标签: uwp inkcanvas

我使用ActiveCustomDrying自定义墨迹,现在我想删除它们InkStrokes。由于StrokeContainer处于有效状态,nullCustomDrying,因此我无法使用InkStrokes方法移除DeleteSelected。任何人都可以建议我在使用InkStrokes时删除CustomDrying

1 个答案:

答案 0 :(得分:0)

在自定义烘干过程中,您会将笔划存储在自定义List<InkStrokeContainer>集合中:

private void InkPresenter_StrokesCollected(InkPresenter sender, InkStrokesCollectedEventArgs args)
{
    var strokes = _inkSynchronizer.BeginDry();

    var container = new InkStrokeContainer(); 
    container.AddStrokes(from item in strokes
        select item.Clone()); 
    _strokes.Add(container);

    _inkSynchronizer.EndDry();
}

现在,您可以手动操作InkStrokeContainer个实例(包括对DeleteSelected的调用)。

ActiveCustomDrying使用InkToolbar时,用Checked删除不会自动运行,您需要手动处理指针事件

  

如果您的应用程序使用自定义干燥实现覆盖InkPresenter的默认墨迹渲染行为,则InkToolbar不再提供渲染的墨迹笔划,并且InkToolbar的内置擦除命令无法按预期工作。要提供擦除功能,您必须处理所有指针事件,对每个笔划执行命中测试,并覆盖内置的&#34;擦除所有墨水&#34;命令。

如果要实现命令,则需要观察工具栏按钮的UncheckedUPDATE TABLE1 A SET A.COLUMN2 = (SELECT.... 事件,然后自己处理指针事件。如何执行此操作的完整教程是documentation also states