C# UWP Canvas 多段线绘制奇怪的结果

C# UWP Canvas Polyline drawing weird results

我有一个 canvas(不是 InkCanvas!),我可以在上面画画。绘图是由 PointerMoved 事件完成的,因此每次移动指针时,我都会获取指针的当前位置并将其添加到折线点集合中。到目前为止,一切都很好。但是每当我将指针移动非常小的距离时,绘制的线真的很奇怪,如下所示。

(最后一条横线不是bug的一部分,是因为我自动把折线收成了一个多边形)

这是我截取的代码:

private void AddPointToPolyline(Polyline pl, object sender, PointerRoutedEventArgs e)
    {
        if (e.Pointer.PointerDeviceType != PointerDeviceType.Touch)
        {
            PointerPoint pt = GetCurrentPointerPosition(sender, e);
            if (pl != null && pt != null && pl.Points.Count > 0 && pl.Points.Any())
            {
                pl.Points.Add(pt.RawPosition);
            }
        }
    }

就像我上面说的,每次移动指针时都会调用此方法。

我尝试实现一种方法来检查两个点是否太近,如果太近则丢弃新点而不是将其放入多段线。但是之后BUG还是出现了,感觉画画不顺手了

有没有什么方法可以在不改变新技术的情况下修复这个错误(我不想使用 InkCanvas)?

像评论中提到的 Clemens:

StrokeLineJoin to a value other than (the default value) Miter