C# UWP 在 InkCanvas 中单独渲染 InkStrokes

问题描述

enter image description here

我已经从竹板中捕获了点数据,并将它们转换为 Windows.UI.Input.Inking.InkStroke 数据。然后我把它们放在一个 InkPresenter.StrokeContainer 中,就像上图一样。笔触粘在一起,怎么会我把它们分开? 这是我下面的代码。

private void DataDisplay()
    {
        List<InkPoint> list = new List<InkPoint>();
        List<InkStroke> strokes = new List<InkStroke>();
        InkDrawingAttributes drawingAttributes1 = new InkDrawingAttributes();
        drawingAttributes1.Color = Colors.Black;
        drawingAttributes1.Size = new Size(1,1);
        InkStrokeBuilder builder = new InkStrokeBuilder();
        builder.SetDefaultDrawingAttributes(drawingAttributes1);
        inkCanvas.InkPresenter.UpdateDefaultDrawingAttributes(drawingAttributes1);
        inkCanvas.InkPresenter.IsInputEnabled = true;
        foreach (var item in data.Stroke)
        {
                string[] strArray = item.Split(',');
                for (int i = 9; i <= strArray.Length - 5; i += 5)
                {
                    float x = float.Parse(strArray[i]) / 30;
                    float y = float.Parse(strArray[i + 1]) / 30;
                    float pressure = float.Parse(strArray[i + 2]) / 1000;
                    Point point = new Point(x,y);
                    InkPoint ip = new InkPoint(point,pressure);
                    list.Add(ip);
                }
                Matrix3x2 matrix3X2 = new Matrix3x2(1,1,0);
                InkStroke newStroke = builder.CreateStrokeFromInkPoints(list,matrix3X2);
                strokes.Add(newStroke);
            }
            inkCanvas.InkPresenter.StrokeContainer.AddStroke(strokes);
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)