问题是stroke.getgeometry()返回的几何图形是围绕笔划的路径,因此用黄色填充的区域正好位于笔划的中间。如果使线条变粗,可以更清楚地看到这一点:
_revealShapes.Children.Add(stroke.GetGeometry(new DrawingAttributes() { Width = 10, Height = 10 }));
如果您自己将触笔点列表转换为streamgeometry,则可以执行所需操作:
var geometry = new StreamGeometry();
using (var geometryContext = geometry.Open())
{
var lastPoint = stroke.StylusPoints.Last();
geometryContext.BeginFigure(new Point(lastPoint.X, lastPoint.Y), true, true);
foreach (var point in stroke.StylusPoints)
{
geometryContext.LineTo(new Point(point.X, point.Y), true, true);
}
}
geometry.Freeze();
_revealShapes.Children.Add(geometry);